[GIT PULL] Please pull NFS client requests for Linux 5.13

From: Trond Myklebust
Date: Fri May 07 2021 - 08:15:03 EST


Hi Linus,

The following changes since commit e49d033bddf5b565044e2abe4241353959bc9120:

Linux 5.12-rc6 (2021-04-04 14:15:36 -0700)

are available in the Git repository at:

git://git.linux-nfs.org/projects/trondmy/linux-nfs.git tags/nfs-for-5.13-1

for you to fetch changes up to 9e895cd9649abe4392c59d14e31b0f5667d082d2:

xprtrdma: Fix a NULL dereference in frwr_unmap_sync() (2021-05-01 19:42:22 -0400)

Thanks!
Trond

----------------------------------------------------------------
NFS client updates for Linux 5.13

Highlights include:

Stable fixes:
- Add validation of the UDP retrans parameter to prevent shift out-of-bounds
- Don't discard pNFS layout segments that are marked for return

Bugfixes:
- Fix a NULL dereference crash in xprt_complete_bc_request() when the
NFSv4.1 server misbehaves.
- Fix the handling of NFS READDIR cookie verifiers
- Sundry fixes to ensure attribute revalidation works correctly when the
server does not return post-op attributes.
- nfs4_bitmask_adjust() must not change the server global bitmasks
- Fix major timeout handling in the RPC code.
- NFSv4.2 fallocate() fixes.
- Fix the NFSv4.2 SEEK_HOLE/SEEK_DATA end-of-file handling
- Copy offload attribute revalidation fixes
- Fix an incorrect filehandle size check in the pNFS flexfiles driver
- Fix several RDMA transport setup/teardown races
- Fix several RDMA queue wrapping issues
- Fix a misplaced memory read barrier in sunrpc's call_decode()

Features:
- Micro optimisation of the TCP transmission queue using TCP_CORK
- statx() performance improvements by further splitting up the tracking
of invalid cached file metadata.
- Support the NFSv4.2 "change_attr_type" attribute and use it to
optimise handling of change attribute updates.

----------------------------------------------------------------
Baptiste Lepers (1):
sunrpc: Fix misplaced barrier in call_decode

Benjamin Coddington (1):
SUNRPC: Ensure the transport backchannel association

Bhaskar Chowdhury (1):
nfs: Fix a typo in the file nfs42xattr.c

Chris Dion (1):
SUNRPC: Handle major timeout in xprt_adjust_timeout()

Chuck Lever (27):
SUNRPC: Move fault injection call sites
SUNRPC: Add tracepoint that fires when an RPC is retransmitted
SUNRPC: Remove trace_xprt_transmit_queued
xprtrdma: Avoid Receive Queue wrapping
xprtrdma: Do not refresh Receive Queue while it is draining
xprtrdma: Put flushed Receives on free list instead of destroying them
xprtrdma: Improve locking around rpcrdma_rep destruction
xprtrdma: Improve commentary around rpcrdma_reps_unmap()
xprtrdma: Improve locking around rpcrdma_rep creation
xprtrdma: Fix cwnd update ordering
xprtrdma: Delete rpcrdma_recv_buffer_put()
xprtrdma: rpcrdma_mr_pop() already does list_del_init()
xprtrdma: Rename frwr_release_mr()
xprtrdma: Clarify use of barrier in frwr_wc_localinv_done()
xprtrdma: Do not recycle MR after FastReg/LocalInv flushes
xprtrdma: Do not wake RPC consumer on a failed LocalInv
xprtrdma: Avoid Send Queue wrapping
xprtrdma: Add tracepoints showing FastReg WRs and remote invalidation
xprtrdma: Add an rpcrdma_mr_completion_class
xprtrdma: Don't display r_xprt memory addresses in tracepoints
xprtrdma: Remove the RPC/RDMA QP event handler
xprtrdma: Move fr_cid to struct rpcrdma_mr
xprtrdma: Move cqe to struct rpcrdma_mr
xprtrdma: Move fr_linv_done field to struct rpcrdma_mr
xprtrdma: Move the Work Request union to struct rpcrdma_mr
xprtrdma: Move fr_mr field to struct rpcrdma_mr
xprtrdma: Fix a NULL dereference in frwr_unmap_sync()

Dai Ngo (1):
NFSv4.2: Remove ifdef CONFIG_NFSD from NFSv4.2 client SSC code.

Eryu Guan (2):
sunrpc: honor rpc_task's timeout value in rpcb_create()
nfs: hornor timeo and retrans option when mounting NFSv3

Nagendra S Tomar (1):
nfs: Subsequent READDIR calls should carry non-zero cookieverifier

Nikola Livic (1):
pNFS/flexfiles: fix incorrect size check in decode_nfs_fh()

Olga Kornievskaia (1):
NFSv4.2 fix handling of sr_eof in SEEK's reply

Randy Dunlap (1):
NFS: fs_context: validate UDP retrans to prevent shift out-of-bounds

Trond Myklebust (47):
NFSv4: Simplify nfs4_retry_setlk()
SUNRPC: Set TCP_CORK until the transmit queue is empty
NFS: Fix up incorrect documentation
NFS: Fix handling of cookie verifier in uncached_readdir()
NFS: Only change the cookie verifier if the directory page cache is empty
NFS: Fix up the support for CONFIG_NFS_DISABLE_UDP_SUPPORT
NFS: fix nfs_fetch_iversion()
NFS: Fix fscache invalidation in nfs_set_cache_invalid()
NFS: nfs4_bitmask_adjust() must not change the server global bitmasks
NFS: Fix attribute bitmask in _nfs42_proc_fallocate()
NFSv4.2: Always flush out writes in nfs42_proc_fallocate()
NFS: Deal correctly with attribute generation counter overflow
NFS: Fix up inode cache tracing
NFS: Mask out unsupported attributes in nfs_getattr()
NFS: NFS_INO_REVAL_PAGECACHE should mark the change attribute invalid
NFS: Fix up revalidation of space used
NFS: Don't revalidate attributes that are not being asked for
NFS: Fix up statx() results
NFS: nfs_setattr_update_inode() should clear the suid/sgid bits
NFS: Add a cache validity flag argument to nfs_revalidate_inode()
NFS: Replace use of NFS_INO_REVAL_PAGECACHE when checking cache validity
NFS: Don't set NFS_INO_REVAL_PAGECACHE in the inode cache validity
NFSv4: Fix nfs4_bitmap_copy_adjust()
NFS: Separate tracking of file nlinks cache validity from the mode/uid/gid
NFS: Separate tracking of file mode cache validity from the uid/gid
NFS: Fix up handling of outstanding layoutcommit in nfs_update_inode()
NFS: Remove a line of code that has no effect in nfs_update_inode()
NFS: Simplify cache consistency in nfs_check_inode_attributes()
NFSv4: Fix value of decode_fsinfo_maxsz
NFSv4: Don't modify the change attribute cached in the inode
NFSv4: Add support for the NFSv4.2 "change_attr_type" attribute
NFS: Use information about the change attribute to optimise updates
NFS: Another inode revalidation improvement
NFSv4: nfs4_inc/dec_nlink_locked should also invalidate ctime
NFSv4: link must update the inode nlink.
NFS: Don't store NFS_INO_REVAL_FORCED
NFS: Split attribute support out from the server capabilities
NFSv4: Add tracing for COMPOUND errors
NFSv4: Convert nfs_xdr_status tracepoint to an event class
NFSv4: Catch and trace server filehandle encoding errors
NFSv42: Copy offload should update the file size when appropriate
NFSv42: Don't force attribute revalidation of the copy offload source
NFSv4.x: Don't return NFS4ERR_NOMATCHING_LAYOUT if we're unmounting
NFS: Don't discard pNFS layout segments that are marked for return
NFSv4: Don't discard segments marked for return in _pnfs_return_layout()
NFSv4.1: Simplify layout return in pnfs_layout_process()
NFS: The 'fattr_valid' field in struct nfs_server should be unsigned int

fs/Kconfig | 4 +-
fs/nfs/callback_proc.c | 17 +-
fs/nfs/client.c | 20 +-
fs/nfs/delegation.c | 29 ++-
fs/nfs/delegation.h | 3 +-
fs/nfs/dir.c | 29 ++-
fs/nfs/export.c | 15 +-
fs/nfs/file.c | 2 +-
fs/nfs/flexfilelayout/flexfilelayout.c | 2 +-
fs/nfs/fs_context.c | 66 ++++--
fs/nfs/inode.c | 418 +++++++++++++++++++++------------
fs/nfs/internal.h | 2 +-
fs/nfs/io.c | 2 +-
fs/nfs/mount_clnt.c | 14 +-
fs/nfs/nfs3acl.c | 2 +-
fs/nfs/nfs3xdr.c | 5 +-
fs/nfs/nfs42proc.c | 77 ++++--
fs/nfs/nfs42xattr.c | 2 +-
fs/nfs/nfs4file.c | 4 -
fs/nfs/nfs4proc.c | 258 +++++++++++---------
fs/nfs/nfs4state.c | 2 +-
fs/nfs/nfs4trace.h | 47 +++-
fs/nfs/nfs4xdr.c | 60 ++++-
fs/nfs/nfstrace.c | 1 +
fs/nfs/nfstrace.h | 22 +-
fs/nfs/pagelist.c | 4 +-
fs/nfs/pnfs.c | 11 +-
fs/nfs/proc.c | 1 +
fs/nfs/super.c | 6 +-
fs/nfs/write.c | 7 +-
fs/nfsd/Kconfig | 2 +-
include/linux/nfs4.h | 9 +
include/linux/nfs_fs.h | 6 +-
include/linux/nfs_fs_sb.h | 13 +-
include/linux/nfs_xdr.h | 13 +-
include/linux/sunrpc/xprt.h | 1 +
include/trace/events/rpcrdma.h | 146 ++++++------
include/trace/events/sunrpc.h | 41 +++-
net/sunrpc/clnt.c | 12 +-
net/sunrpc/rpcb_clnt.c | 7 +-
net/sunrpc/xprt.c | 18 +-
net/sunrpc/xprtrdma/backchannel.c | 4 +-
net/sunrpc/xprtrdma/frwr_ops.c | 209 +++++++----------
net/sunrpc/xprtrdma/rpc_rdma.c | 39 ++-
net/sunrpc/xprtrdma/transport.c | 6 +-
net/sunrpc/xprtrdma/verbs.c | 131 +++++------
net/sunrpc/xprtrdma/xprt_rdma.h | 29 ++-
net/sunrpc/xprtsock.c | 9 +-
48 files changed, 1112 insertions(+), 715 deletions(-)

--
Trond Myklebust
Linux NFS client maintainer, Hammerspace
trond.myklebust@xxxxxxxxxxxxxxx