Thread (31 messages) 31 messages, 5 authors, 2011-01-07

Re: [PATCH v2 00/12] make rpc_pipefs be mountable multiple time

From: Kirill A. Shutemov <hidden>
Date: 2010-12-30 10:44:19
Also in: linux-nfs, lkml

On Thu, Dec 30, 2010 at 04:05:07AM -0600, Rob Landley wrote:
On 12/30/2010 03:44 AM, Kirill A. Shutemov wrote:
quoted
quoted
quoted
If no rpcmount mountoption, no rpc_pipefs was found at
'/var/lib/nfs/rpc_pipefs' and we are in init's mount namespace, we use
init_rpc_pipefs.
It's the "we are in init's mount namespace" that I was wondering about.

So if I naievely chroot, nfs mount stops working the way it did before I
chrooted unless I do an extra setup step?
No. It will work as before since you are still in init's mount namespace.
Creating new mount namespace changes rules.
Ah, CLONE_NEWNS and then you need /var/lib/nfs/rpc_pipefs.  Got it.

I'm kind of surprised that the kernel cares about a specific path under 
/var/lib.  (Seems like policy in the kernel somehow.)
Yep. It's bad, but there is way to overwrite the default.

Other way is to leave 'rpcmount' mountoption without default.
get_rpc_pipefs(NULL) in init's mount namespace will always return
init_rpc_pipefs, without filesystem lookup.
get_rpc_pipefs(NULL) in non-init's mount namespace will always return
error.

So you will have to specify 'rpcmount' mountoption for every nfs mount in
container. Hmm, I guess, it may confuse user.

Or we can try to move the default to userspace. /sbin/mount.nfs?
Can't it just 
check the current process's mount list to see if an instance of 
rpc_pipefs is mounted in the current namespace the way lxc looks for 
cgroups?  Or are there potential performance/scalability issues with that?
What should we do if we have several rpc_pipefs mounts in the namespace?

-- 
 Kirill A. Shutemov
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help