Greetings Linus- You may notice that towards the end of the commit list in this series the CommitDate on individual commits is December 10. I had to drop a patch from the middle of this series due to regressions. Its replacement and a fix for the recent server-to-server copy crasher will be on your virtual doorstep before the v6.2 merge window closes. Meanwhile the remaining patches below have been percolating in linux-next for quite some time. Please pull these for v6.2. PR follows: The following changes since commit b7b275e60bcd5f89771e865a8239325f86d9927d: Linux 6.1-rc7 (2022-11-27 13:31:48 -0800) are available in the Git repository at: https://git.kernel.org/pub/scm/linux/kernel/git/cel/linux.git tags/nfsd-6.2 for you to fetch changes up to e78e274eb22d966258a3845acc71d3c5b8ee2ea8: NFSD: Avoid clashing function prototypes (2022-12-10 11:01:13 -0500) ---------------------------------------------------------------- NFSD 6.2 Release Notes This release introduces support for the CB_RECALL_ANY operation. NFSD can send this operation to request that clients return any delegations they choose. The server uses this operation to handle low memory scenarios or indicate to a client when that client has reached the maximum number of delegations the server supports. The NFSv4.2 READ_PLUS operation has been simplified temporarily whilst support for sparse files in local filesystems and the VFS is improved. Two major data structure fixes appear in this release: * The nfs4_file hash table is replaced with a resizable hash table to reduce the latency of NFSv4 OPEN operations. * Reference counting in the NFSD filecache has been hardened against races. In furtherance of removing support for NFSv2 in a subsequent kernel release, a new Kconfig option enables server-side support for NFSv2 to be left out of a kernel build. MAINTAINERS has been updated to indicate that changes to fs/exportfs should go through the NFSD tree. ---------------------------------------------------------------- Anna Schumaker (1): NFSD: Simplify READ_PLUS Brian Foster (1): NFSD: pass range end to vfs_fsync_range() instead of count Chuck Lever (26): SUNRPC: Remove unused svc_rqst::rq_lock field NFSD: Finish converting the NFSv2 GETACL result encoder NFSD: Finish converting the NFSv3 GETACL result encoder NFSD: Pass the target nfsd_file to nfsd_commit() NFSD: Revert "NFSD: NFSv4 CLOSE should release an nfsd_file immediately" NFSD: Add an NFSD_FILE_GC flag to enable nfsd_file garbage collection NFSD: Flesh out a documenting comment for filecache.c NFSD: Clean up nfs4_preprocess_stateid_op() call sites NFSD: Trace stateids returned via DELEGRETURN NFSD: Trace delegation revocations NFSD: Use const pointers as parameters to fh_ helpers NFSD: Update file_hashtbl() helpers NFSD: Clean up nfsd4_init_file() NFSD: Add a nfsd4_file_hash_remove() helper NFSD: Clean up find_or_add_file() NFSD: Refactor find_file() NFSD: Use rhashtable for managing nfs4_file objects NFSD: Fix licensing header in filecache.c MAINTAINERS: NFSD should be responsible for fs/exportfs NFSD: Add an nfsd_file_fsync tracepoint trace: Relocate event helper files SUNRPC: Don't leak netobj memory when gss_read_proxy_verf() fails SUNRPC: Clean up xdr_write_pages() NFSD: Use only RQ_DROPME to signal the need to drop a reply SUNRPC: Make the svc_authenticate tracepoint conditional SUNRPC: Fix crasher in unwrap_integ_data() Colin Ian King (1): NFSD: Remove redundant assignment to variable host_err Dai Ngo (4): NFSD: refactoring courtesy_client_reaper to a generic low memory shrinker NFSD: add support for sending CB_RECALL_ANY NFSD: add delegation reaper to react to low memory condition NFSD: add CB_RECALL_ANY tracepoints David Disseldorp (1): exportfs: use pr_debug for unreachable debug statements Jeff Layton (11): nfsd: ignore requests to disable unsupported versions nfsd: move nfserrno() to vfs.c nfsd: allow disabling NFSv2 at compile time nfsd: don't call nfsd_file_put from client states seqfile display nfsd: remove the pages_flushed statistic from filecache nfsd: reorganize filecache.c nfsd: fix up the filecache laundrette scheduling nfsd: return error if nfs4_setacl fails lockd: set missing fl_flags field when retrieving args lockd: ensure we use the correct file descriptor when unlocking lockd: fix file selection in nlmsvc_cancel_blocked Kees Cook (1): NFSD: Avoid clashing function prototypes Li zeming (1): sunrpc: svc: Remove an unused static function svc_ungetu32() Trond Myklebust (1): lockd: set other missing fields when unlocking files Xiu Jianfeng (1): NFSD: Use struct_size() helper in alloc_session() MAINTAINERS | 8 ++ drivers/infiniband/core/cm_trace.h | 2 +- drivers/infiniband/core/cma_trace.h | 2 +- fs/exportfs/expfs.c | 8 +- fs/lockd/svc4proc.c | 1 + fs/lockd/svclock.c | 17 ++-- fs/lockd/svcproc.c | 1 + fs/lockd/svcsubs.c | 17 ++-- fs/nfs/nfs4trace.h | 6 +- fs/nfs/nfstrace.h | 6 +- fs/nfsd/Kconfig | 19 ++++- fs/nfsd/Makefile | 5 +- fs/nfsd/blocklayout.c | 1 + fs/nfsd/blocklayoutxdr.c | 1 + fs/nfsd/export.h | 1 - fs/nfsd/filecache.c | 241 +++++++++++++++++++++++++++++++++---------------------- fs/nfsd/filecache.h | 4 +- fs/nfsd/flexfilelayout.c | 1 + fs/nfsd/nfs2acl.c | 10 --- fs/nfsd/nfs3acl.c | 30 ++----- fs/nfsd/nfs3proc.c | 10 ++- fs/nfsd/nfs4callback.c | 72 +++++++++++++++++ fs/nfsd/nfs4idmap.c | 1 + fs/nfsd/nfs4proc.c | 49 +++++------ fs/nfsd/nfs4state.c | 345 +++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------- fs/nfsd/nfs4xdr.c | 771 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------------------- fs/nfsd/nfsctl.c | 6 +- fs/nfsd/nfsd.h | 3 +- fs/nfsd/nfsfh.h | 10 ++- fs/nfsd/nfsproc.c | 66 +-------------- fs/nfsd/nfssvc.c | 8 +- fs/nfsd/state.h | 11 ++- fs/nfsd/trace.h | 144 ++++++++++++++++++++++++++++++++- fs/nfsd/vfs.c | 83 +++++++++++++++---- fs/nfsd/vfs.h | 4 +- fs/nfsd/xdr4.h | 5 ++ fs/nfsd/xdr4cb.h | 6 ++ include/linux/nfs4.h | 13 +++ include/linux/sunrpc/svc.h | 8 -- include/trace/events/rpcgss.h | 2 +- include/trace/events/rpcrdma.h | 4 +- include/trace/events/sunrpc.h | 6 +- include/trace/{events => misc}/fs.h | 0 include/trace/{events => misc}/nfs.h | 12 +++ include/trace/{events => misc}/rdma.h | 0 include/trace/{events/sunrpc_base.h => misc/sunrpc.h} | 0 net/sunrpc/auth_gss/svcauth_gss.c | 64 +++++++++------ net/sunrpc/svc.c | 4 +- net/sunrpc/xdr.c | 22 ++--- 49 files changed, 1302 insertions(+), 808 deletions(-) rename include/trace/{events => misc}/fs.h (100%) rename include/trace/{events => misc}/nfs.h (96%) rename include/trace/{events => misc}/rdma.h (100%) rename include/trace/{events/sunrpc_base.h => misc/sunrpc.h} (100%) -- Chuck Lever