diff options
Diffstat (limited to 'fs/sysfs')
-rw-r--r-- | fs/sysfs/mount.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/fs/sysfs/mount.c b/fs/sysfs/mount.c index 4a2da3a4b1b1..8c69ef49c7f3 100644 --- a/fs/sysfs/mount.c +++ b/fs/sysfs/mount.c | |||
@@ -112,9 +112,15 @@ static struct dentry *sysfs_mount(struct file_system_type *fs_type, | |||
112 | struct super_block *sb; | 112 | struct super_block *sb; |
113 | int error; | 113 | int error; |
114 | 114 | ||
115 | if (!(flags & MS_KERNMOUNT) && !capable(CAP_SYS_ADMIN) && | 115 | if (!(flags & MS_KERNMOUNT)) { |
116 | !fs_fully_visible(fs_type)) | 116 | if (!capable(CAP_SYS_ADMIN) && !fs_fully_visible(fs_type)) |
117 | return ERR_PTR(-EPERM); | 117 | return ERR_PTR(-EPERM); |
118 | |||
119 | for (type = KOBJ_NS_TYPE_NONE; type < KOBJ_NS_TYPES; type++) { | ||
120 | if (!kobj_ns_current_may_mount(type)) | ||
121 | return ERR_PTR(-EPERM); | ||
122 | } | ||
123 | } | ||
118 | 124 | ||
119 | info = kzalloc(sizeof(*info), GFP_KERNEL); | 125 | info = kzalloc(sizeof(*info), GFP_KERNEL); |
120 | if (!info) | 126 | if (!info) |