mnt: Refactor the logic for mounting sysfs and proc in a user namespace
commitb5eb51f2ee063044401492650e9e01bb35974870
authorEric W. Biederman <ebiederm@xmission.com>
Sat, 9 May 2015 04:22:29 +0000 (8 23:22 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 21 Jul 2015 17:10:01 +0000 (21 10:10 -0700)
tree111e5f73c54f26603d577e05c0d1726f6bc04b84
parent8e7c56b6f14d1388d5aa2feb5b28dd6360199cef
mnt: Refactor the logic for mounting sysfs and proc in a user namespace

commit 1b852bceb0d111e510d1a15826ecc4a19358d512 upstream.

Fresh mounts of proc and sysfs are a very special case that works very
much like a bind mount.  Unfortunately the current structure can not
preserve the MNT_LOCK... mount flags.  Therefore refactor the logic
into a form that can be modified to preserve those lock bits.

Add a new filesystem flag FS_USERNS_VISIBLE that requires some mount
of the filesystem be fully visible in the current mount namespace,
before the filesystem may be mounted.

Move the logic for calling fs_fully_visible from proc and sysfs into
fs/namespace.c where it has greater access to mount namespace state.

Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/namespace.c
fs/proc/root.c
fs/sysfs/mount.c
include/linux/fs.h