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)
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

diff --cc fs/namespace.c
Simple merge
diff --cc fs/pnode.h
Simple merge