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: Andy Lutomirski <hidden>
Date: 2014-10-07 21:52:21
Also in: linux-fsdevel, lkml

On Tue, Oct 7, 2014 at 2:50 PM, Eric W. Biederman [off-list ref] wrote:
Andy Lutomirski [off-list ref] writes:
quoted
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?
I suspect that we have a userspace reference to old itself.

--Andy
Eric


-- 
Andy Lutomirski
AMA Capital Management, LLC
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help