[GIT PULL] Please pull NFS client updates for Linux 5.2

From: Schumaker, Anna
Date: Thu May 09 2019 - 16:38:19 EST


Hi Linus,

The following changes since commit 085b7755808aa11f78ab9377257e1dad2e6fa4bb:

Linux 5.1-rc6 (2019-04-21 10:45:57 -0700)

are available in the Git repository at:

git://git.linux-nfs.org/projects/anna/linux-nfs.git tags/nfs-for-5.2-1

for you to fetch changes up to 5940d1cf9f42f67e9cc3f7df9eda39f5888d6e9e:

SUNRPC: Rebalance a kref in auth_gss.c (2019-05-09 16:27:24 -0400)

----------------------------------------------------------------
Highlights include:

Stable bugfixes:
- Fall back to MDS if no deviceid is found rather than aborting # v4.11+
- NFS4: Fix v4.0 client state corruption when mount

Features:
- Much improved handling of soft mounts with NFS v4.0
- Reduce risk of false positive timeouts
- Faster failover of reads and writes after a timeout
- Added a "softerr" mount option to return ETIMEDOUT instead of
EIO to the application after a timeout
- Increase number of xprtrdma backchannel requests
- Add additional xprtrdma tracepoints
- Improved send completion batching for xprtrdma

Other bugfixes and cleanups:
- Return -EINVAL when NFS v4.2 is passed an invalid dedup mode
- Reduce usage of GFP_ATOMIC pages in SUNRPC
- Various minor NFS over RDMA cleanups and bugfixes
- Use the correct container namespace for upcalls
- Don't share superblocks between user namespaces
- Various other container fixes
- Make nfs_match_client() killable to prevent soft lockups
- Don't mark all open state for recovery when handling recallable state revoked
flag

Thanks,
Anna

----------------------------------------------------------------
Benjamin Coddington (1):
NFS: Fix a double unlock from nfs_match,get_client

Christoph Hellwig (1):
nfs: pass the correct prototype to read_cache_page

Chuck Lever (22):
SUNRPC: Avoid digging into the ATOMIC pool
xprtrdma: Fix an frwr_map recovery nit
xprtrdma: Clean up rpcrdma_create_req()
xprtrdma: Clean up rpcrdma_create_rep() and rpcrdma_destroy_rep()
xprtrdma: rpcrdma_regbuf alignment
xprtrdma: Allocate req's regbufs at xprt create time
xprtrdma: De-duplicate "allocate new, free old regbuf"
xprtrdma: Clean up regbuf helpers
xprtrdma: Backchannel can use GFP_KERNEL allocations
xprtrdma: Increase maximum number of backchannel requests
xprtrdma: Trace marshaling failures
xprtrdma: Clean up sendctx functions
xprtrdma: More Send completion batching
xprtrdma: Eliminate rpcrdma_ia::ri_device
SUNRPC: Update comments based on recent changes
xprtrdma: Remove rpcrdma_create_data_internal::rsize and wsize
xprtrdma: Aggregate the inline settings in struct rpcrdma_ep
xprtrdma: Eliminate struct rpcrdma_create_data_internal
xprtrdma: Remove pr_err() call sites from completion handlers
xprtrdma: Update comments that reference ib_drain_qp
xprtrdma: Remove stale comment
SUNRPC: Rebalance a kref in auth_gss.c

Dan Carpenter (1):
SUNRPC: Fix an error code in gss_alloc_msg()

Olga Kornievskaia (1):
PNFS fallback to MDS if no deviceid found

Roberto Bergantinos Corpas (1):
NFS: make nfs_match_client killable

Scott Mayhew (1):
NFSv4: don't mark all open state for recovery when handling recallable
state revoked flag

Trond Myklebust (38):
SUNRPC: Fix up task signalling
SUNRPC: Refactor rpc_restart_call/rpc_restart_call_prepare
SUNRPC: Refactor xprt_request_wait_receive()
SUNRPC: Refactor rpc_sleep_on()
SUNRPC: Remove unused argument 'action' from rpc_sleep_on_priority()
SUNRPC: Add function rpc_sleep_on_timeout()
SUNRPC: Fix up tracking of timeouts
SUNRPC: Simplify queue timeouts using timer_reduce()
SUNRPC: Declare RPC timers as TIMER_DEFERRABLE
SUNRPC: Ensure that the transport layer respect major timeouts
SUNRPC: Add tracking of RPC level errors
SUNRPC: Make "no retrans timeout" soft tasks behave like softconn for
timeouts
SUNRPC: Start the first major timeout calculation at task creation
SUNRPC: Ensure to ratelimit the "server not responding" syslog messages
SUNRPC: Add the 'softerr' rpc_client flag
NFS: Consider ETIMEDOUT to be a fatal error
NFS: Move internal constants out of uapi/linux/nfs_mount.h
NFS: Add a mount option "softerr" to allow clients to see ETIMEDOUT errors
NFS: Don't interrupt file writeout due to fatal errors
NFS: Don't call generic_error_remove_page() while holding locks
NFS: Don't inadvertently clear writeback errors
NFS: Replace custom error reporting mechanism with generic one
NFS: Fix up NFS I/O subrequest creation
NFS: Remove unused argument from nfs_create_request()
pNFS: Add tracking to limit the number of pNFS retries
NFS: Allow signal interruption of NFS4ERR_DELAYed operations
NFS: Ensure that all nfs lock contexts have a valid open context
NFS: Add a helper to return a pointer to the open context of a struct
nfs_page
NFS: Remove redundant open context from nfs_page
SUNRPC: Cache cred of process creating the rpc_client
NFS: Store the credential of the mount process in the nfs_server
SUNRPC: Use the client user namespace when encoding creds
SUNRPC: Use namespace of listening daemon in the client AUTH_GSS upcall
NFS: Convert NFSv3 to use the container user namespace
NFSv4: Convert the NFS client idmapper to use the container user namespace
NFS: Convert NFSv2 to use the container user namespace
NFS: When mounting, don't share filesystems between different user
namespaces
lockd: Store the lockd client credential in struct nlm_host

Xiaoli Feng (1):
Fix nfs4.2 return -EINVAL when do dedupe operation

ZhangXiaoxu (2):
NFS4: Fix v4.0 client state corruption when mount
SUNRPC: task should be exit if encode return EKEYEXPIRED more times

fs/lockd/clntlock.c | 2 +-
fs/lockd/clntproc.c | 4 +-
fs/lockd/host.c | 10 +-
fs/lockd/mon.c | 1 +
fs/nfs/client.c | 16 +-
fs/nfs/delegation.c | 12 +
fs/nfs/delegation.h | 1 +
fs/nfs/dir.c | 7 +-
fs/nfs/direct.c | 11 +-
fs/nfs/file.c | 31 +--
fs/nfs/filelayout/filelayout.c | 6 +-
fs/nfs/flexfilelayout/flexfilelayout.c | 14 +-
fs/nfs/inode.c | 13 +-
fs/nfs/internal.h | 8 +-
fs/nfs/mount_clnt.c | 2 +
fs/nfs/nfs2xdr.c | 58 +++--
fs/nfs/nfs3client.c | 1 +
fs/nfs/nfs3xdr.c | 142 +++++++-----
fs/nfs/nfs4_fs.h | 1 +
fs/nfs/nfs4client.c | 6 +
fs/nfs/nfs4file.c | 4 +-
fs/nfs/nfs4idmap.c | 27 ++-
fs/nfs/nfs4proc.c | 159 ++++++++++----
fs/nfs/nfs4state.c | 7 +-
fs/nfs/pagelist.c | 123 ++++++-----
fs/nfs/pnfs.c | 4 +-
fs/nfs/pnfs.h | 4 +-
fs/nfs/read.c | 6 +-
fs/nfs/super.c | 32 ++-
fs/nfs/symlink.c | 7 +-
fs/nfs/write.c | 70 +++---
fs/nfsd/nfs4callback.c | 5 +-
include/linux/lockd/bind.h | 1 +
include/linux/lockd/lockd.h | 4 +-
include/linux/nfs_fs.h | 1 -
include/linux/nfs_fs_sb.h | 13 ++
include/linux/nfs_page.h | 12 +-
include/linux/sunrpc/clnt.h | 4 +
include/linux/sunrpc/sched.h | 20 +-
include/linux/sunrpc/xprt.h | 6 +-
include/trace/events/rpcrdma.h | 27 +++
include/trace/events/sunrpc.h | 8 +-
include/uapi/linux/nfs_mount.h | 9 -
net/sunrpc/auth_gss/auth_gss.c | 71 ++++--
net/sunrpc/auth_unix.c | 9 +-
net/sunrpc/clnt.c | 132 +++++++----
net/sunrpc/debugfs.c | 2 +-
net/sunrpc/rpcb_clnt.c | 12 +-
net/sunrpc/sched.c | 158 ++++++++++----
net/sunrpc/socklib.c | 2 +-
net/sunrpc/xprt.c | 154 ++++++++-----
net/sunrpc/xprtrdma/backchannel.c | 120 ++++------
net/sunrpc/xprtrdma/frwr_ops.c | 63 ++----
net/sunrpc/xprtrdma/rpc_rdma.c | 115 +++++-----
net/sunrpc/xprtrdma/svc_rdma_backchannel.c | 2 +-
net/sunrpc/xprtrdma/transport.c | 105 ++-------
net/sunrpc/xprtrdma/verbs.c | 338 ++++++++++++++++-------------
net/sunrpc/xprtrdma/xprt_rdma.h | 121 +++++------
net/sunrpc/xprtsock.c | 9 +-
59 files changed, 1366 insertions(+), 946 deletions(-)