Re: [PATCH] [RFC] mnt: add ability to clone mntns starting with the current root
From: Eric W. Biederman <hidden>
Date: 2014-10-07 21:50:47
Also in:
linux-fsdevel, lkml
Andy Lutomirski [off-list ref] writes:
On Tue, Oct 7, 2014 at 2:26 PM, Eric W. Biederman [off-list ref] wrote:quoted
Andy Lutomirski [off-list ref] writes:quoted
Why should MNT_LOCKED on submounts be enforced? Is it because, if you retain a reference to the detached tree, then you can see under the submounts?Yes. MNT_DETACH is a recursive operation that detaches all of the mount and all of it's submounts. Which means you can see under the submounts if you have a reference to a detached mount.quoted
If so, let's fix *that*. Because otherwise the whole model of pivot_root + detach will break.I am not certain what you are referring to. pivot_root doesn't manipulate the mount tree so you can see under anything. What I believe is the appropriate fix is to fail umount2(...,MNT_DETACH) if there are any referenced mount points being detached that have a locked submount.Most of the container-using things do, roughly: Unshare userns and mountns Mount some new stuff pivot_root to the new stuff MNT_DETACH the old. That last step will almost always fail if you make this change.
I don't think so. I expect I could add full busy detection of normal umounts and those applications would not fail. What I am proposing is a more targeted version of busy detection that looks at each mount in the set that detach will unmount. For each mount if it is busy with non-submount references and it has at least one locked submount fail the detach with -EBUSY. Do you really think we have userspace references to the one or more of the mounts under old? Eric