All of lore.kernel.org
 help / color / mirror / Atom feed
From: "bfields@fieldses.org" <bfields@fieldses.org>
To: "Schumaker, Anna" <Anna.Schumaker@netapp.com>
Cc: "neilb@suse.com" <neilb@suse.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"trond.myklebust@hammerspace.com"
	<trond.myklebust@hammerspace.com>,
	"linux-nfs@vger.kernel.org" <linux-nfs@vger.kernel.org>,
	"chuck.lever@oracle.com" <chuck.lever@oracle.com>,
	"jlayton@kernel.org" <jlayton@kernel.org>
Subject: Re: [PATCH 00/23 - V5] NFS: Remove generic RPC credentials.
Date: Tue, 4 Dec 2018 20:47:10 -0500	[thread overview]
Message-ID: <20181205014710.GB6093@fieldses.org> (raw)
In-Reply-To: <19ce8a518de95a0c0185eccefbf17da5ebceda11.camel@netapp.com>

On Tue, Dec 04, 2018 at 09:33:18PM +0000, Schumaker, Anna wrote:
> On Tue, 2018-12-04 at 15:21 -0500, J. Bruce Fields wrote:
> > On Mon, Dec 03, 2018 at 11:30:30AM +1100, NeilBrown wrote:
> > > This is the same series as posted on 07 November, modified slightly
> > > to match some recent code changes upstream - nothing substantial.
> > > 
> > > General description:
> > > 
> > > There doesn't seem to be a maintainer for the 'cred' code, so I don't
> > > know who to ask to approve the first 4 patches.  Maybe if the NFS
> > > team like them, they can just go to Linus with a note for him to look
> > > at them if he wants to.
> > 
> > For what it's worth: all my usual tests still pass with this series
> > applied.  And the nfsd (and common) parts are unlikely to conflict with
> > anything of mine.
> > 
> > Otherwise: sounds like a reasonable idea, but I haven't gotten a chance
> > to review the patches in any detail.
> 
> The patches look okay to me, I'm was planning to take them for the next merge.
> 
> Bruce, can I get your acked-by for the patches that touch NFSD?  I think it's
> just 19/23.

Yes, feel free to add 

	Acked-by: J. Bruce Fields <bfields@redhat.com>

--b.

> 
> Thanks,
> Anna
> 
> > 
> > --b.
> > 
> > > The original motivation for this was performance.  In some
> > > circumstances the cred caches can get big and particularly can get
> > > long chains.  The hash function has been changed at least once to
> > > improve the hashing and it still isn't perfect.
> > > Rather than improving pruning of the cache, or resizing the hashtable
> > > etc, it is easiest to just get rid of it.
> > > 
> > > As well as discarding generic credentials completely (using 'struct
> > > cred' instead), we also stop storing AUTH_UNIX credentials in a hash
> > > table - that brings no value.  Just allocate as needed and discard
> > > when finished with.
> > > So the only hash table will still have is for AUTH_GSS.
> > > One of the main triggers for hashtable problems was users changing
> > > groups a lot, so there would be many entries for the one user, each
> > > with a different set of groups.  That doesn't apply for
> > > AUTH_GSS as the groupids on the client are ignored.
> > > 
> > > That was the original motivation, but as I worked on it, I realized
> > > that it was making a log of code simpler.
> > > 
> > >  44 files changed, 550 insertions(+), 925 deletions(-)
> > > 
> > > That is sufficient motivation in itself I think.
> > > 
> > > Thanks,
> > > NeilBrown
> > > 
> > > 
> > > ---
> > > 
> > > NeilBrown (23):
> > >       cred: add cred_fscmp() for comparing creds.
> > >       cred: add get_cred_rcu()
> > >       cred: export get_task_cred().
> > >       cred: allow get_cred() and put_cred() to be given NULL.
> > >       SUNRPC: add 'struct cred *' to auth_cred and rpc_cred
> > >       SUNRPC: remove groupinfo from struct auth_cred.
> > >       SUNRPC: remove uid and gid from struct auth_cred
> > >       SUNRPC: remove machine_cred field from struct auth_cred
> > >       NFSv4: add cl_root_cred for use when machine cred is not available.
> > >       NFSv4: don't require lock for get_renew_cred or get_machine_cred
> > >       SUNRPC: discard RPC_DO_ROOTOVERRIDE()
> > >       NFS/SUNRPC: don't lookup machine credential until rpcauth_bindcred().
> > >       SUNRPC: introduce RPC_TASK_NULLCREDS to request auth_none
> > >       SUNRPC: add side channel to use non-generic cred for rpc call.
> > >       NFS: move credential expiry tracking out of SUNRPC into NFS.
> > >       SUNRPC: remove RPCAUTH_AUTH_NO_CRKEY_TIMEOUT
> > >       NFS: change access cache to use 'struct cred'.
> > >       NFS: struct nfs_open_dir_context: convert rpc_cred pointer to cred.
> > >       NFS/NFSD/SUNRPC: replace generic creds with 'struct cred'.
> > >       SUNRPC: remove generic cred code.
> > >       SUNRPC: remove crbind rpc_cred operation
> > >       SUNRPC: simplify auth_unix.
> > >       SUNRPC discard cr_uid from struct rpc_cred.
> > > 
> > > 
> > >  fs/lockd/clntproc.c                       |    6 -
> > >  fs/nfs/blocklayout/blocklayout.c          |    2 
> > >  fs/nfs/client.c                           |    9 -
> > >  fs/nfs/delegation.c                       |   28 +--
> > >  fs/nfs/delegation.h                       |   10 -
> > >  fs/nfs/dir.c                              |   59 ++----
> > >  fs/nfs/flexfilelayout/flexfilelayout.c    |   64 +++---
> > >  fs/nfs/flexfilelayout/flexfilelayout.h    |    8 -
> > >  fs/nfs/flexfilelayout/flexfilelayoutdev.c |   16 +-
> > >  fs/nfs/inode.c                            |   13 +
> > >  fs/nfs/internal.h                         |    8 -
> > >  fs/nfs/nfs3proc.c                         |    4 
> > >  fs/nfs/nfs4_fs.h                          |   65 +++---
> > >  fs/nfs/nfs4client.c                       |    4 
> > >  fs/nfs/nfs4proc.c                         |  150 +++++++--------
> > >  fs/nfs/nfs4renewd.c                       |    9 -
> > >  fs/nfs/nfs4session.c                      |    5 
> > >  fs/nfs/nfs4state.c                        |  129 ++++++-------
> > >  fs/nfs/pagelist.c                         |    2 
> > >  fs/nfs/pnfs.c                             |   14 +
> > >  fs/nfs/pnfs.h                             |   10 -
> > >  fs/nfs/pnfs_dev.c                         |    4 
> > >  fs/nfs/pnfs_nfs.c                         |    2 
> > >  fs/nfs/proc.c                             |    2 
> > >  fs/nfs/unlink.c                           |   15 -
> > >  fs/nfs/write.c                            |   24 ++
> > >  fs/nfsd/nfs4callback.c                    |   31 +--
> > >  fs/nfsd/state.h                           |    2 
> > >  include/linux/cred.h                      |   26 ++-
> > >  include/linux/nfs_fs.h                    |   13 +
> > >  include/linux/nfs_fs_sb.h                 |    2 
> > >  include/linux/nfs_xdr.h                   |   16 +-
> > >  include/linux/sunrpc/auth.h               |   51 -----
> > >  include/linux/sunrpc/clnt.h               |    1 
> > >  include/linux/sunrpc/sched.h              |    6 -
> > >  kernel/cred.c                             |   58 ++++++
> > >  net/sunrpc/Makefile                       |    2 
> > >  net/sunrpc/auth.c                         |  116 ++++++-----
> > >  net/sunrpc/auth_generic.c                 |  293 --------------------------
> > > ---
> > >  net/sunrpc/auth_gss/auth_gss.c            |   47 +----
> > >  net/sunrpc/auth_null.c                    |    4 
> > >  net/sunrpc/auth_unix.c                    |  110 +++--------
> > >  net/sunrpc/clnt.c                         |   26 +--
> > >  net/sunrpc/sched.c                        |    5 
> > >  44 files changed, 551 insertions(+), 920 deletions(-)
> > >  delete mode 100644 net/sunrpc/auth_generic.c
> > > 
> > > --
> > > Signature

      reply	other threads:[~2018-12-05  1:47 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-03  0:30 [PATCH 00/23 - V5] NFS: Remove generic RPC credentials NeilBrown
2018-12-03  0:30 ` [PATCH 05/23] SUNRPC: add 'struct cred *' to auth_cred and rpc_cred NeilBrown
2018-12-03  0:30 ` [PATCH 15/23] NFS: move credential expiry tracking out of SUNRPC into NFS NeilBrown
2018-12-03  0:30 ` [PATCH 14/23] SUNRPC: add side channel to use non-generic cred for rpc call NeilBrown
2018-12-03  0:30 ` [PATCH 03/23] cred: export get_task_cred() NeilBrown
2018-12-03  0:30 ` [PATCH 16/23] SUNRPC: remove RPCAUTH_AUTH_NO_CRKEY_TIMEOUT NeilBrown
2018-12-03  0:30 ` [PATCH 18/23] NFS: struct nfs_open_dir_context: convert rpc_cred pointer to cred NeilBrown
2018-12-03  0:30 ` [PATCH 11/23] SUNRPC: discard RPC_DO_ROOTOVERRIDE() NeilBrown
2018-12-03  0:30 ` [PATCH 08/23] SUNRPC: remove machine_cred field from struct auth_cred NeilBrown
2018-12-03  0:30 ` [PATCH 12/23] NFS/SUNRPC: don't lookup machine credential until rpcauth_bindcred() NeilBrown
2018-12-03  0:30 ` [PATCH 09/23] NFSv4: add cl_root_cred for use when machine cred is not available NeilBrown
2018-12-03  0:30 ` [PATCH 06/23] SUNRPC: remove groupinfo from struct auth_cred NeilBrown
2018-12-03  0:30 ` [PATCH 04/23] cred: allow get_cred() and put_cred() to be given NULL NeilBrown
2018-12-03  0:30 ` [PATCH 13/23] SUNRPC: introduce RPC_TASK_NULLCREDS to request auth_none NeilBrown
2018-12-03  0:30 ` [PATCH 07/23] SUNRPC: remove uid and gid from struct auth_cred NeilBrown
2018-12-03  0:30 ` [PATCH 02/23] cred: add get_cred_rcu() NeilBrown
2018-12-03  0:30 ` [PATCH 10/23] NFSv4: don't require lock for get_renew_cred or get_machine_cred NeilBrown
2018-12-03  0:30 ` [PATCH 17/23] NFS: change access cache to use 'struct cred' NeilBrown
2018-12-03  0:30 ` [PATCH 01/23] cred: add cred_fscmp() for comparing creds NeilBrown
2018-12-03  0:30 ` [PATCH 23/23] SUNRPC discard cr_uid from struct rpc_cred NeilBrown
2018-12-03  0:30 ` [PATCH 22/23] SUNRPC: simplify auth_unix NeilBrown
2018-12-03  0:30 ` [PATCH 19/23] NFS/NFSD/SUNRPC: replace generic creds with 'struct cred' NeilBrown
2018-12-03  0:30 ` [PATCH 20/23] SUNRPC: remove generic cred code NeilBrown
2018-12-03  0:30 ` [PATCH 21/23] SUNRPC: remove crbind rpc_cred operation NeilBrown
2018-12-04 20:21 ` [PATCH 00/23 - V5] NFS: Remove generic RPC credentials J. Bruce Fields
2018-12-04 21:33   ` Schumaker, Anna
2018-12-05  1:47     ` bfields [this message]

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=20181205014710.GB6093@fieldses.org \
    --to=bfields@fieldses.org \
    --cc=Anna.Schumaker@netapp.com \
    --cc=chuck.lever@oracle.com \
    --cc=jlayton@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-nfs@vger.kernel.org \
    --cc=neilb@suse.com \
    --cc=trond.myklebust@hammerspace.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.