Reported-by: Pavel Tikhomirov <[email protected]>
Signed-off-by: Andrew Vagin <[email protected]>
---
fs/namespace.c | 8 +++++++-
scripts/basic/fixdep | Bin 13875 -> 14262 bytes
2 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/fs/namespace.c b/fs/namespace.c
index 77a1ede..1377488 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
@@ -2167,6 +2167,7 @@ static int do_new_mount(struct path *path, const char
*fstype, int flags,
struct file_system_type *type;
struct user_namespace *user_ns = current->nsproxy->mnt_ns->user_ns;
struct vfsmount *mnt;
+ struct user_namespace *root_user_ns;
int err;
if (!fstype)
@@ -2176,7 +2177,12 @@ static int do_new_mount(struct path *path, const char
*fstype, int flags,
if (!type)
return -ENODEV;
- if (user_ns != &init_user_ns) {
+ if (get_exec_env()->init_cred)
+ root_user_ns = get_exec_env()->init_cred->user_ns;
+ else
+ root_user_ns = &init_user_ns;
+
+ if (user_ns != root_user_ns) {
if (!(type->fs_flags & FS_USERNS_MOUNT)) {
put_filesystem(type);
return -EPERM;
_______________________________________________
Devel mailing list
[email protected]
https://lists.openvz.org/mailman/listinfo/devel