Re: [PATCH] private mounts

Jamie Lokier
2005-04-28T22:09:19Z

Ram wrote:
> > I've looked at the code. Look in fs/proc/base.c (Linux 2.6.10),
> > proc_root_link().
> >
> > I don't see anything there to prevent you from traversing to the
> > mounts in the other namespace.
> >
> > So why is it failing? Any idea?
>
> Since you are traversing a symlink, you will be traversing the symlink
> in the context of traversing process's namespace.
>
> If process 'x' is traversing /proc/y/root , the lookup for the root
> dentry will happen in the context of process x's namespace, and not
> process y's namespace. Hence process 'x' wont really get into
> the namespace of the process y.

Lookups don't happen in the context of a namespace.

They happen in the context of a vfsmnt. And the switch to a new
vfsmnt is done by matching against (dentry,parent-vfsmnt) pairs.
current->namespace is only checked for mount & unmount operations, not
for path lookups.

Which means proc_root_link, when it switches to the vfsmnt at the root
of the other process, should traverse into the tree of vfsmnts which
make up the other namespace.

-- Jamie