[GIT PULL] initial nfsd updates for v6.2

From: Chuck Lever III
Date: Mon Dec 12 2022 - 16:46:53 EST


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