[GIT PULL] nfsd changes for 5.2

From: J. Bruce Fields
Date: Wed May 15 2019 - 14:28:52 EST


Please pull:

git://linux-nfs.org/~bfields/linux.git tags/nfsd-5.2

This pull consists mostly of nfsd container work:

Scott Mayhew revived an old api that communicates with a userspace
daemon to manage some on-disk state that's used to track clients across
server reboots. We've been using a usermode_helper upcall for that, but
it's tough to run those with the right namespaces, so a daemon is much
friendlier to container use cases.

Trond fixed nfsd's handling of user credentials in user namespaces. He
also contributed patches that allow containers to support different sets
of NFS protocol versions.

The only remaining container bug I'm aware of is that the NFS reply
cache is shared between all containers. If anyone's aware of other gaps
in our container support, let me know.

The rest of this is miscellaneous bugfixes.

--b.

Arnd Bergmann (1):
nfsd: avoid uninitialized variable warning

J. Bruce Fields (2):
nfsd: allow fh_want_write to be called twice
nfsd: fh_drop_write in nfsd_unlink

NeilBrown (2):
sunrpc/cache: handle missing listeners better.
locks: move checks from locks_free_lock() to locks_release_private()

Scott Mayhew (6):
nfsd: make nfs4_client_reclaim use an xdr_netobj instead of a fixed char array
nfsd: un-deprecate nfsdcld
nfsd: keep a tally of RECLAIM_COMPLETE operations when using nfsdcld
nfsd: re-order client tracking method selection
nfsd: handle legacy client tracking records sent by nfsdcld
nfsd: update callback done processing

Trond Myklebust (12):
SUNRPC/nfs: Fix return value for nfs4_callback_compound()
SUNRPC: Add a callback to initialise server requests
SUNRPC: Clean up generic dispatcher code
SUNRPC: Allow further customisation of RPC program registration
nfsd: Add custom rpcbind callbacks for knfsd
nfsd: Allow containers to set supported nfs versions
SUNRPC: Cache the process user cred in the RPC server listener
SUNRPC: Temporary sockets should inherit the cred from their parent
lockd: Pass the user cred from knfsd when starting the lockd server
SUNRPC: Fix the server AUTH_UNIX userspace mappings
SUNRPC: rsi_parse() should use the current user namespace
nfsd: knfsd must use the container user namespace

fs/lockd/clntlock.c | 4 +-
fs/lockd/svc.c | 33 +--
fs/locks.c | 12 +-
fs/nfs/callback.c | 9 +-
fs/nfs/callback_xdr.c | 2 +-
fs/nfs/client.c | 1 +
fs/nfsd/export.c | 18 +-
fs/nfsd/netns.h | 11 +
fs/nfsd/nfs3xdr.c | 21 +-
fs/nfsd/nfs4callback.c | 9 +-
fs/nfsd/nfs4idmap.c | 8 +-
fs/nfsd/nfs4layouts.c | 2 +-
fs/nfsd/nfs4proc.c | 3 +-
fs/nfsd/nfs4recover.c | 436 +++++++++++++++++++++++++++++++++++---
fs/nfsd/nfs4state.c | 68 ++++--
fs/nfsd/nfs4xdr.c | 9 +-
fs/nfsd/nfsctl.c | 42 ++--
fs/nfsd/nfsd.h | 17 +-
fs/nfsd/nfssvc.c | 271 ++++++++++++++++++-----
fs/nfsd/nfsxdr.c | 17 +-
fs/nfsd/state.h | 8 +-
fs/nfsd/vfs.c | 8 +-
fs/nfsd/vfs.h | 5 +-
include/linux/lockd/bind.h | 3 +-
include/linux/sunrpc/svc.h | 33 +++
include/linux/sunrpc/svc_xprt.h | 4 +-
include/linux/sunrpc/svcsock.h | 3 +-
include/uapi/linux/nfsd/cld.h | 1 +
net/sunrpc/auth_gss/svcauth_gss.c | 6 +-
net/sunrpc/cache.c | 4 +-
net/sunrpc/svc.c | 298 +++++++++++++++++---------
net/sunrpc/svc_xprt.c | 17 +-
net/sunrpc/svcauth_unix.c | 15 +-
net/sunrpc/svcsock.c | 4 +-
34 files changed, 1086 insertions(+), 316 deletions(-)