diff options
Diffstat (limited to 'fs/sysfs')
-rw-r--r-- | fs/sysfs/file.c | 3 | ||||
-rw-r--r-- | fs/sysfs/mount.c | 7 |
2 files changed, 7 insertions, 3 deletions
diff --git a/fs/sysfs/file.c b/fs/sysfs/file.c index 28cc1acd5439..e9ef59b3abb1 100644 --- a/fs/sysfs/file.c +++ b/fs/sysfs/file.c | |||
@@ -47,12 +47,13 @@ static int sysfs_kf_seq_show(struct seq_file *sf, void *v) | |||
47 | ssize_t count; | 47 | ssize_t count; |
48 | char *buf; | 48 | char *buf; |
49 | 49 | ||
50 | /* acquire buffer and ensure that it's >= PAGE_SIZE */ | 50 | /* acquire buffer and ensure that it's >= PAGE_SIZE and clear */ |
51 | count = seq_get_buf(sf, &buf); | 51 | count = seq_get_buf(sf, &buf); |
52 | if (count < PAGE_SIZE) { | 52 | if (count < PAGE_SIZE) { |
53 | seq_commit(sf, -1); | 53 | seq_commit(sf, -1); |
54 | return 0; | 54 | return 0; |
55 | } | 55 | } |
56 | memset(buf, 0, PAGE_SIZE); | ||
56 | 57 | ||
57 | /* | 58 | /* |
58 | * Invoke show(). Control may reach here via seq file lseek even | 59 | * Invoke show(). Control may reach here via seq file lseek even |
diff --git a/fs/sysfs/mount.c b/fs/sysfs/mount.c index a66ad6196f59..8a49486bf30c 100644 --- a/fs/sysfs/mount.c +++ b/fs/sysfs/mount.c | |||
@@ -13,6 +13,7 @@ | |||
13 | #define DEBUG | 13 | #define DEBUG |
14 | 14 | ||
15 | #include <linux/fs.h> | 15 | #include <linux/fs.h> |
16 | #include <linux/magic.h> | ||
16 | #include <linux/mount.h> | 17 | #include <linux/mount.h> |
17 | #include <linux/init.h> | 18 | #include <linux/init.h> |
18 | #include <linux/user_namespace.h> | 19 | #include <linux/user_namespace.h> |
@@ -38,7 +39,8 @@ static struct dentry *sysfs_mount(struct file_system_type *fs_type, | |||
38 | } | 39 | } |
39 | 40 | ||
40 | ns = kobj_ns_grab_current(KOBJ_NS_TYPE_NET); | 41 | ns = kobj_ns_grab_current(KOBJ_NS_TYPE_NET); |
41 | root = kernfs_mount_ns(fs_type, flags, sysfs_root, &new_sb, ns); | 42 | root = kernfs_mount_ns(fs_type, flags, sysfs_root, |
43 | SYSFS_MAGIC, &new_sb, ns); | ||
42 | if (IS_ERR(root) || !new_sb) | 44 | if (IS_ERR(root) || !new_sb) |
43 | kobj_ns_drop(KOBJ_NS_TYPE_NET, ns); | 45 | kobj_ns_drop(KOBJ_NS_TYPE_NET, ns); |
44 | return root; | 46 | return root; |
@@ -63,7 +65,8 @@ int __init sysfs_init(void) | |||
63 | { | 65 | { |
64 | int err; | 66 | int err; |
65 | 67 | ||
66 | sysfs_root = kernfs_create_root(NULL, 0, NULL); | 68 | sysfs_root = kernfs_create_root(NULL, KERNFS_ROOT_EXTRA_OPEN_PERM_CHECK, |
69 | NULL); | ||
67 | if (IS_ERR(sysfs_root)) | 70 | if (IS_ERR(sysfs_root)) |
68 | return PTR_ERR(sysfs_root); | 71 | return PTR_ERR(sysfs_root); |
69 | 72 | ||