From: "bfields@fieldses.org" <bfields@fieldses.org>
To: Jeff Layton <jlayton@redhat.com>
Cc: Stanislav Kinsbursky <skinsbursky@parallels.com>,
"linux-nfs@vger.kernel.org" <linux-nfs@vger.kernel.org>
Subject: Re: [PATCH v7 5/5] nfsd: add the infrastructure to handle the cld upcall
Date: Wed, 29 Feb 2012 16:44:00 -0500 [thread overview]
Message-ID: <20120229214400.GA6506@fieldses.org> (raw)
In-Reply-To: <20120229144512.37de84e7@tlielax.poochiereds.net>
On Wed, Feb 29, 2012 at 02:45:12PM -0500, Jeff Layton wrote:
> On Wed, 29 Feb 2012 22:39:01 +0400
> Stanislav Kinsbursky <skinsbursky@parallels.com> wrote:
>
> > Hi, Jeff.
> > I'll try to explain, how all this namespaces-aware SUNRPC PipeFS works.
> > The main idea is, that today we have 2 types of independently created and
> > destroyed but linked objects:
> > 1) pipe data itself. This object is created whenever kernel requires (on mount,
> > module install, whatever)
> > 2) dentry/inode for this pipe. This object is created on PipeFS superblock creation.
> > This means, any kernel user of SUNRPC pipes have to provide two mechanisms:
> > 1) Safe call (in per-net operations, if the object is global your case) for
> > PipeFS dentry/inode pair. This is done this in nfsd4_init_cld_pipe().
> >
> > 2) Notifier callback for PipeFS mount/umount operations. Note: this callback is
> > done from SUNRPC module (i.e. you have to get nfsd module); this callback is
> > safe - i.e you can be sure, that superblock is valid.
> >
>
> This is the part I'm having a hard time with. IIUC, the existing
> examples are fairly clear since you have a 1:1 ratio of objects: a
> per-net object (the pipe data) that is hooked up to a dentry/inode in a
> per-net sb.
>
> Here though, we don't really have that. We have a global pipe object
> and I don't see how you can hook that up to multiple dentries/inodes.
>
> One possibility is to completely "namespacify" this code -- don't use a
> global rpc_pipe object and make it per-net instead. If I do that though,
> then I suppose I'll also need to make all of the
> nfsd4_client_tracking_ops take a struct net arg as well?
That does sound like what we'll want eventually.
And callers will use pass svc_rqst->rq_xprt->xpt_net there, I assume.
(Or actually we may need a pointer to the netns from the nfs4 client?)
--b.
next prev parent reply other threads:[~2012-02-29 21:44 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-29 17:15 [PATCH v7 0/5] nfsd: overhaul the client name tracking code Jeff Layton
2012-02-29 17:15 ` [PATCH v7 1/5] nfsd: add nfsd4_client_tracking_ops struct and a way to set it Jeff Layton
2012-02-29 17:15 ` [PATCH v7 2/5] sunrpc: create nfsd dir in rpc_pipefs Jeff Layton
2012-02-29 17:15 ` [PATCH v7 3/5] nfsd: convert nfs4_client->cl_cb_flags to a generic flags field Jeff Layton
2012-02-29 17:15 ` [PATCH v7 4/5] nfsd: add a header describing upcall to nfsdcld Jeff Layton
2012-02-29 17:15 ` [PATCH v7 5/5] nfsd: add the infrastructure to handle the cld upcall Jeff Layton
2012-02-29 18:39 ` Stanislav Kinsbursky
2012-02-29 19:45 ` Jeff Layton
2012-02-29 21:44 ` bfields [this message]
2012-03-01 7:31 ` Stanislav Kinsbursky
2012-03-01 7:29 ` Stanislav Kinsbursky
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120229214400.GA6506@fieldses.org \
--to=bfields@fieldses.org \
--cc=jlayton@redhat.com \
--cc=linux-nfs@vger.kernel.org \
--cc=skinsbursky@parallels.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).