2012-05-12 11:42:57

by Pavel Emelyanov

[permalink] [raw]
Subject: Re: [PATCH] vfs: Add setns support for the mount namespace

On 05/12/2012 12:54 AM, Eric W. Biederman wrote:
>
> setns support for the mount namespace is a little tricky as an arbitrary
> decision must be made about what to set fs->root and fs->pwd to, as
> there is no expectation of a relationship between the two mount
> namespaces. Therefore I arbitrarily find the root mount point, and
> follow every mount on top of it to find the top of the mount stack.
> Then I set fs->root and fs->pwd to that location. The topmost root of
> the mount stack seems like a reasonable place to be.
>
> Bind mount support for the mount namespace inodes has the possibility of
> creating circular dependencies between mount namespaces. Circular
> dependencies can result in loops that prevent mount namespaces from
> every being freed. I avoid creating those circular dependencies by
> adding a sequence number to the mount namespace and require all bind
> mounts be of a younger mount namespace into an older mount namespace.
>
> Add a helper function proc_ns_inode so it is possible to detect when we
> are attempting to bind mound a namespace inode.
>
> Signed-off-by: Eric W. Biederman <[email protected]>

Acked-by: Pavel Emelyanov <[email protected]>


2012-05-18 19:41:58

by Serge E. Hallyn

[permalink] [raw]
Subject: Re: [PATCH] vfs: Add setns support for the mount namespace

Quoting Pavel Emelyanov ([email protected]):
> On 05/12/2012 12:54 AM, Eric W. Biederman wrote:
> >
> > setns support for the mount namespace is a little tricky as an arbitrary
> > decision must be made about what to set fs->root and fs->pwd to, as
> > there is no expectation of a relationship between the two mount
> > namespaces. Therefore I arbitrarily find the root mount point, and
> > follow every mount on top of it to find the top of the mount stack.
> > Then I set fs->root and fs->pwd to that location. The topmost root of
> > the mount stack seems like a reasonable place to be.
> >
> > Bind mount support for the mount namespace inodes has the possibility of
> > creating circular dependencies between mount namespaces. Circular
> > dependencies can result in loops that prevent mount namespaces from
> > every being freed. I avoid creating those circular dependencies by
> > adding a sequence number to the mount namespace and require all bind
> > mounts be of a younger mount namespace into an older mount namespace.
> >
> > Add a helper function proc_ns_inode so it is possible to detect when we
> > are attempting to bind mound a namespace inode.
> >
> > Signed-off-by: Eric W. Biederman <[email protected]>
>
> Acked-by: Pavel Emelyanov <[email protected]>

These patches haven't made it into linux-next or Linus' tree. (More
worrisome, is that the several online linux-kernel mail archives I've
checked seem to have most of this thread, but not Eric's original
patch.) What path were they expected to go in by?

thanks,
-serge

2012-05-18 22:47:30

by Eric W. Biederman

[permalink] [raw]
Subject: Re: [PATCH] vfs: Add setns support for the mount namespace

"Serge E. Hallyn" <[email protected]> writes:

> Quoting Pavel Emelyanov ([email protected]):
>> On 05/12/2012 12:54 AM, Eric W. Biederman wrote:
>> >
>> > setns support for the mount namespace is a little tricky as an arbitrary
>> > decision must be made about what to set fs->root and fs->pwd to, as
>> > there is no expectation of a relationship between the two mount
>> > namespaces. Therefore I arbitrarily find the root mount point, and
>> > follow every mount on top of it to find the top of the mount stack.
>> > Then I set fs->root and fs->pwd to that location. The topmost root of
>> > the mount stack seems like a reasonable place to be.
>> >
>> > Bind mount support for the mount namespace inodes has the possibility of
>> > creating circular dependencies between mount namespaces. Circular
>> > dependencies can result in loops that prevent mount namespaces from
>> > every being freed. I avoid creating those circular dependencies by
>> > adding a sequence number to the mount namespace and require all bind
>> > mounts be of a younger mount namespace into an older mount namespace.
>> >
>> > Add a helper function proc_ns_inode so it is possible to detect when we
>> > are attempting to bind mound a namespace inode.
>> >
>> > Signed-off-by: Eric W. Biederman <[email protected]>
>>
>> Acked-by: Pavel Emelyanov <[email protected]>
>
> These patches haven't made it into linux-next or Linus' tree. (More
> worrisome, is that the several online linux-kernel mail archives I've
> checked seem to have most of this thread, but not Eric's original
> patch.) What path were they expected to go in by?

I was hoping Al Viro would pick it up in the vfs tree, or at least
review the patch. With a backup possibility that Andrew Morton might.

Given that the merge window is likely to open in next couple of days
I plan to resubmit this after the merge window closes.

I don't have a clue what happened to the archives that day but it does
look like there was a significant mail hiccup as the number of messages
archived are way down.

Eric