vfs: Don't copy mount bind mounts of /proc/<pid>/ns/mnt between namespaces
authorEric W. Biederman <ebiederm@xmission.com>
Sat, 30 Mar 2013 08:35:18 +0000 (01:35 -0700)
committerEric W. Biederman <ebiederm@xmission.com>
Tue, 27 Aug 2013 01:42:15 +0000 (18:42 -0700)
commit4ce5d2b1a8fde84c0eebe70652cf28b9beda6b4e
tree08fa563457c4264fe48355e8d28c216c9a11664b
parent21e851943e31022731cd5fad386ca8fb552dbe64
vfs: Don't copy mount bind mounts of /proc/<pid>/ns/mnt between namespaces

Don't copy bind mounts of /proc/<pid>/ns/mnt between namespaces.
These files hold references to a mount namespace and copying them
between namespaces could result in a reference counting loop.

The current mnt_ns_loop test prevents loops on the assumption that
mounts don't cross between namespaces.  Unfortunately unsharing a
mount namespace and shared substrees can both cause mounts to
propogate between mount namespaces.

Add two flags CL_COPY_UNBINDABLE and CL_COPY_MNT_NS_FILE are added to
control this behavior, and CL_COPY_ALL is redefined as both of them.

Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
fs/namespace.c
fs/pnode.h