[GIT PULL] NFSD changes for v6.9

From: Chuck Lever
Date: Tue Mar 12 2024 - 09:33:06 EST


Hello Linus-

Stephen Rothwell notes one or two minor merge conflicts with the VFS
tree, which I believe you've already merged. He's been carrying
fix-ups in linux-next for several weeks with no reported issues.


---- PR follows ----

The following changes since commit d206a76d7d2726f3b096037f2079ce0bd3ba329b:

Linux 6.8-rc6 (2024-02-25 15:46:06 -0800)

are available in the Git repository at:

https://git.kernel.org/pub/scm/linux/kernel/git/cel/linux.git tags/nfsd-6.9

for you to fetch changes up to 9b350d3e349f2c4ba4e046001446d533471844a7:

NFSD: Clean up nfsd4_encode_replay() (2024-03-09 13:57:50 -0500)

----------------------------------------------------------------
NFSD 6.9 Release Notes

The bulk of the patches for this release are optimizations, code
clean-ups, and minor bug fixes.

One new feature to mention is that NFSD administrators now have the
ability to revoke NFSv4 open and lock state. NFSD's NFSv3 support
has had this capability for some time.

As always I am grateful to NFSD contributors, reviewers, and
testers.

----------------------------------------------------------------
Chen Hanxiao (1):
nfsd: clean up comments over nfs4_client definition

Chuck Lever (31):
SUNRPC: Use a static buffer for the checksum initialization vector
NFSD: Reset cb_seq_status after NFS4ERR_DELAY
NFSD: Convert the callback workqueue to use delayed_work
NFSD: Reschedule CB operations when backchannel rpc_clnt is shut down
NFSD: Retransmit callbacks after client reconnects
NFSD: Add nfsd_seq4_status trace event
NFSD: Replace dprintks in nfsd4_cb_sequence_done()
NFSD: Rename nfsd_cb_state trace point
NFSD: Add callback operation lifetime trace points
SUNRPC: Remove EXPORT_SYMBOL_GPL for svc_process_bc()
NFSD: Remove unused @reason argument
NFSD: Replace comment with lockdep assertion
NFSD: Remove BUG_ON in nfsd4_process_cb_update()
SUNRPC: Remove stale comments
NFSD: Remove redundant cb_seq_status initialization
svcrdma: Reserve an extra WQE for ib_drain_rq()
svcrdma: Report CQ depths in debugging output
svcrdma: Update max_send_sges after QP is created
svcrdma: Increase the per-transport rw_ctx count
svcrdma: Fix SQ wake-ups
svcrdma: Prevent a UAF in svc_rdma_send()
svcrdma: Fix retry loop in svc_rdma_send()
svcrdma: Post Send WR chain
svcrdma: Move write_info for Reply chunks into struct svc_rdma_send_ctxt
svcrdma: Post the Reply chunk and Send WR together
svcrdma: Post WRs for Write chunks in svc_rdma_sendto()
svcrdma: Add Write chunk WRs to the RPC's Send WR chain
NFSD: Fix the NFSv4.1 CREATE_SESSION operation
NFSD: Document the phases of CREATE_SESSION
NFSD: Document nfsd_setattr() fill-attributes behavior
NFSD: Clean up nfsd4_encode_replay()

Dai Ngo (4):
NFSD: add support for CB_GETATTR callback
NFSD: handle GETATTR conflict with write delegation
NFSD: OP_CB_RECALL_ANY should recall both read and write delegations
NFSD: send OP_CB_RECALL_ANY to clients when number of delegations reaches its limit

Jeff Layton (1):
MAINTAINERS: add Alex Aring as Reviewer for file locking code

Jorge Mora (4):
NFSD: fix nfsd4_listxattr_validate_cookie
NFSD: change LISTXATTRS cookie encoding to big-endian
NFSD: fix LISTXATTRS returning a short list with eof=TRUE
NFSD: fix LISTXATTRS returning more bytes than maxcount

Josef Bacik (10):
sunrpc: don't change ->sv_stats if it doesn't exist
nfsd: stop setting ->pg_stats for unused stats
sunrpc: pass in the sv_stats struct through svc_create_pooled
sunrpc: remove ->pg_stats from svc_program
sunrpc: use the struct net as the svc proc private
nfsd: rename NFSD_NET_* to NFSD_STATS_*
nfsd: expose /proc/net/sunrpc/nfsd in net namespaces
nfsd: make all of the nfsd stats per-network namespace
nfsd: remove nfsd_stats, make th_cnt a global counter
nfsd: make svc_stat per-network namespace instead of global

Kunwu Chan (4):
nfsd: Simplify the allocation of slab caches in nfsd4_init_pnfs
nfsd: Simplify the allocation of slab caches in nfsd_file_cache_init
nfsd: Simplify the allocation of slab caches in nfsd_drc_slab_create
nfsd: Simplify the allocation of slab caches in nfsd4_init_slabs

NeilBrown (16):
nfsd: Don't leave work of closing files to a work queue
nfsd: use __fput_sync() to avoid delayed closing of files.
nfsd: remove stale comment in nfs4_show_deleg()
nfsd: hold ->cl_lock for hash_delegation_locked()
nfsd: don't call functions with side-effecting inside WARN_ON()
nfsd: avoid race after unhash_delegation_locked()
nfsd: split sc_status out of sc_type
nfsd: prepare for supporting admin-revocation of state
nfsd: allow state with no file to appear in /proc/fs/nfsd/clients/*/states
nfsd: report in /proc/fs/nfsd/clients/*/states when state is admin-revoke
nfsd: allow admin-revoked NFSv4.0 state to be freed.
nfsd: allow lock state ids to be revoked and then freed
nfsd: allow open state ids to be revoked and then freed
nfsd: allow delegation state ids to be revoked and then freed
nfsd: allow layout state to be admin-revoked.
nfsd: don't call locks_release_private() twice concurrently

Trond Myklebust (2):
nfsd: Fix a regression in nfsd_setattr()
nfsd: Fix NFSv3 atomicity bugs in nfsd_setattr()

Zhipeng Lu (2):
SUNRPC: fix a memleak in gss_import_v2_context
SUNRPC: fix some memleaks in gssx_dec_option_array

MAINTAINERS | 1 +
fs/lockd/svc.c | 3 -
fs/nfs/callback.c | 3 -
fs/nfsd/blocklayout.c | 4 +-
fs/nfsd/cache.h | 2 -
fs/nfsd/filecache.c | 76 ++++-----
fs/nfsd/filecache.h | 1 +
fs/nfsd/netns.h | 29 +++-
fs/nfsd/nfs3proc.c | 6 +-
fs/nfsd/nfs3xdr.c | 5 +-
fs/nfsd/nfs4callback.c | 193 ++++++++++++++++++----
fs/nfsd/nfs4layouts.c | 63 +++++---
fs/nfsd/nfs4proc.c | 13 +-
fs/nfsd/nfs4state.c | 828 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------
fs/nfsd/nfs4xdr.c | 58 +++----
fs/nfsd/nfscache.c | 43 ++---
fs/nfsd/nfsctl.c | 17 +-
fs/nfsd/nfsd.h | 3 +
fs/nfsd/nfsfh.c | 3 +-
fs/nfsd/nfsproc.c | 6 +-
fs/nfsd/nfssvc.c | 16 +-
fs/nfsd/pnfs.h | 8 +-
fs/nfsd/state.h | 83 ++++++++--
fs/nfsd/stats.c | 52 +++---
fs/nfsd/stats.h | 70 +++-----
fs/nfsd/trace.h | 212 +++++++++++++++++++++---
fs/nfsd/vfs.c | 84 ++++++++--
fs/nfsd/vfs.h | 4 +-
fs/nfsd/xdr3.h | 2 +-
fs/nfsd/xdr4cb.h | 18 +++
include/linux/sunrpc/svc.h | 5 +-
include/linux/sunrpc/svc_rdma.h | 55 ++++++-
include/trace/events/rpcrdma.h | 4 +
include/trace/misc/nfs.h | 34 ++++
net/sunrpc/auth_gss/gss_krb5_crypto.c | 14 +-
net/sunrpc/auth_gss/gss_krb5_mech.c | 11 +-
net/sunrpc/auth_gss/gss_rpc_xdr.c | 27 +++-
net/sunrpc/stats.c | 2 +-
net/sunrpc/svc.c | 40 +++--
net/sunrpc/xprtrdma/svc_rdma_backchannel.c | 2 +-
net/sunrpc/xprtrdma/svc_rdma_rw.c | 245 +++++++++++++++++++---------
net/sunrpc/xprtrdma/svc_rdma_sendto.c | 151 ++++++++++-------
net/sunrpc/xprtrdma/svc_rdma_transport.c | 15 +-
net/sunrpc/xprtsock.c | 9 --
44 files changed, 1765 insertions(+), 755 deletions(-)

--
Chuck Lever