Thread (1 message) 1 message, 1 author, 2014-10-07

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help