Re: [PATCH v9 3/6] nfsd: add a per-net-namespace struct for nfsd

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 6 Mar 2012 13:31:24 -0500
Jeff Layton <jlayton@xxxxxxxxxx> wrote:

> On Tue, 06 Mar 2012 21:43:41 +0400
> Stanislav Kinsbursky <skinsbursky@xxxxxxxxxxxxx> wrote:
> 
> > 06.03.2012 19:28, Jeff Layton пишет:
> > > diff --git a/fs/nfsd/nfsctl.c b/fs/nfsd/nfsctl.c
> > > index 64c24af..141197e 100644
> > > --- a/fs/nfsd/nfsctl.c
> > > +++ b/fs/nfsd/nfsctl.c
> > > @@ -19,6 +19,7 @@
> > >   #include "nfsd.h"
> > >   #include "cache.h"
> > >   #include "fault_inject.h"
> > > +#include "netns.h"
> > >
> > >   /*
> > >    *	We have a single directory with several nodes in it.
> > > @@ -1124,14 +1125,23 @@ static int create_proc_exports_entry(void)
> > >   }
> > >   #endif
> > >
> > > +int nfsd_net_id;
> > > +static struct pernet_operations nfsd_net_ops = {
> > > +	.id   =&nfsd_net_id,
> > > +	.size = sizeof(struct nfsd_net),
> > > +};
> > > +
> > >   static int __init init_nfsd(void)
> > >   {
> > >   	int retval;
> > >   	printk(KERN_INFO "Installing knfsd (copyright (C) 1996 okir@xxxxxxxxxxxx).\n");
> > >
> > > +	retval = register_pernet_subsys(&nfsd_net_ops);
> > 
> > Hi, Jeff.
> > You've created per-net structure and operations and that's cool.
> > But why don't you move nfsd client tracking control into per-net operations?
> > I.e. add init-exit callbacks in struct pernet_operations and call 
> > nfsd4_client_tracking_init() and nfsd4_client_tracking_exit() respectively in there?
> > And since we don't support any other networks namesapce except init_net, then 
> > just skip all others in these callbacks.
> > 
> 
> Well...the way I had envisioned it is that you'd create a new net
> namespace container and would then start up nfsd within that container.
> 
> Just because we're spawning a new namespace doesn't mean that we'll
> necessarily want to serve nfs from it, right? If we do it this way,
> then we don't end up allocating resources for containers that aren't
> going to use it.
> 
> ...or do I not understand the "vision" of how all of this is going to
> eventually work?
> 

To carry this thought a little further...

The pernet operations get registered whenever the module is plugged in.
The reason for doing it the way I did it here is that we don't need or
really want to do the client_tracking_init until we start up nfsd.

This is particularly the case with the legacy client tracker, which
slurps in the contents of v4recoverydir when it initializes. We don't
really want to do that at module plugin, I don't think.

-- 
Jeff Layton <jlayton@xxxxxxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux