Re: [PATCH] private mounts
From: Jamie Lokier
Date: Thu Apr 28 2005 - 17:11:09 EST
> > 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.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/