Subject: Re: [PATCH 00/12] make rpc_pipefs be mountable multiple times

From: "Kirill A. Shutemov" <[email-masked]>
Date: Thu, 23 Dec 2010 08:50:33 +0200

On Tue, Dec 21, 2010 at 06:45:21PM -0500, J. Bruce Fields wrote:
> On Wed, Dec 22, 2010 at 01:32:15AM +0200, Kirill A. Shutemov wrote:
> > On Mon, Dec 20, 2010 at 09:46:44AM -0500, J. Bruce Fields wrote:
> > > By the way, was there ever a resolution to Trond's question?:
> > > 
> > > 	http://marc.info/?l=linux-nfs&m=128655758712817&w=2
> > > 
> > > 	"The keyring upcalls are currently initiated through the same
> > > 	mechanism as module_request and therefore get started with the
> > > 	init_nsproxy namespace. We'd really like them to run inside the
> > > 	same container as the process.  As part of the same problem,
> > > 	there is the issue of what to do with the dns resolver and
> > > 	Bryan's new keyring based idmapper code."
> > 
> > I'm not sure that I understand the problem correctly.
> > 
> > Currently, idmap uses dentry taken from client's cl_rpcclient->cl_path
> > (see nfs_idmap_new()). cl_rpcclient (and cl_path) is initialized with
> > rpcmount resolved against mount namespace of mount process (see
> > nfs_create_rpc_client()).
> > I assume it's correct.
> 
> There's actually two separate sets of idmapper code; look at
> fs/nfs/idmapper.c, the first part of the file (between #ifdef
> CONFIG_NFS_USE_NEW_IDMAPPER and #else) is idmapping code that uses
> request_key().  The code you're looking at (including nfs_idmap_new())
> is later in the file, and deprecated.

IIUC, we need to save nsproxy of mount process in struct nfs_client and
pass it down to request_key(). I think it's outside of this patchset.

-- 
 Kirill A. Shutemov