[GIT PULL] nfsd changes for 5.15
From: Chuck Lever III
Date: Tue Aug 31 2021 - 10:47:04 EST
Hi Linus-
NFSD pull request follows below. First some notes:
Stephen Rothwell reports a minor merge conflict with Jeff Layton's
file-locks tree (and now your tree):
https://lore.kernel.org/lkml/20210824100737.4bd6d815@xxxxxxxxxxxxxxxx/
The resolution Stephen provided should be adequate.
There are two v5.13 regressions we are aware of:
- "[Bug 213887] kernel v5.13 regression & NFSv4.2 client timeouts?"
This issue appears to be addressed by recent commit 062b829c52ef
("SUNRPC: Fix XPT_BUSY flag leakage in svc_handle_xprt()...")
- NFS server regression in kernel 5.13 (tested w/ 5.13.9)
A fix for this has been queued for nfsd-5.15-1. It was a bit late
to be included in nfsd-5.15.
And there are two longstanding issues we are aware of:
- BTRFS subvolumes cannot be exported properly by NFSD
As featured on lwn.net:
Part I: https://lwn.net/Articles/866582/
Part II: https://lwn.net/Articles/866709/
Neil Brown is working on a set of patches to address this.
- NFSv4.1+ backchannel not getting restored after PATH_DOWN
This might be an NFS/RDMA-only problem. The reproducer is very
rare, so it's taking a while to nail down.
---- cut here ----
The following changes since commit 7c60610d476766e128cc4284bb6349732cbd6606:
Linux 5.14-rc6 (2021-08-15 13:40:53 -1000)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux.git tags/nfsd-5.15
for you to fetch changes up to 0bcc7ca40bd823193224e9f38bafbd8325aaf566:
nfsd: fix crash on LOCKT on reexported NFSv3 (2021-08-26 15:32:29 -0400)
----------------------------------------------------------------
New features:
- Support for server-side disconnect injection via debugfs
- Protocol definitions for new RPC_AUTH_TLS authentication flavor
Performance improvements:
- Reduce page allocator traffic in the NFSD splice read actor
- Reduce CPU utilization in svcrdma's Send completion handler
Notable bug fixes:
- Stabilize lockd operation when re-exporting NFS mounts
- Fix the use of %.*s in NFSD tracepoints
- Fix /proc/sys/fs/nfs/nsm_use_hostnames
----------------------------------------------------------------
Benjamin Coddington (1):
lockd: Fix invalid lockowner cast after vfs_test_lock
Chuck Lever (15):
NFSD: Clean up splice actor
SUNRPC: Add svc_rqst_replace_page() API
NFSD: Batch release pages during splice read
NFSD: Use new __string_len C macros for the nfs_dirent tracepoint
NFSD: Use new __string_len C macros for nfsd_clid_class
svcrdma: Fewer calls to wake_up() in Send completion handler
svcrdma: Relieve contention on sc_send_lock.
svcrdma: Convert rdma->sc_rw_ctxts to llist
SUNRPC: Fix a NULL pointer deref in trace_svc_stats_latency()
SUNRPC: Add RPC_AUTH_TLS protocol numbers
svcrdma: xpt_bc_xprt is already clear in __svc_rdma_free()
SUNRPC: Add a /sys/kernel/debug/fail_sunrpc/ directory
SUNRPC: Move client-side disconnect injection
SUNRPC: Server-side disconnect injection
SUNRPC: Add documentation for the fail_sunrpc/ directory
J. Bruce Fields (11):
rpc: fix gss_svc_init cleanup on failure
nfsd4: Fix forced-expiry locking
lockd: lockd server-side shouldn't set fl_ops
nlm: minor nlm_lookup_file argument change
nlm: minor refactoring
lockd: update nlm_lookup_file reexport comment
Keep read and write fds with each nlm_file
nfs: don't atempt blocking locks on nfs reexports
lockd: don't attempt blocking locks on nfs reexports
nfs: don't allow reexport reclaims
nfsd: fix crash on LOCKT on reexported NFSv3
Jia He (2):
sysctl: introduce new proc handler proc_dobool
lockd: change the proc_handler for nsm_use_hostnames
NeilBrown (1):
NFSD: remove vanity comments
Steven Rostedt (VMware) (1):
tracing: Add trace_event helper macros __string_len() and __assign_str_len()
Documentation/fault-injection/fault-injection.rst | 18 ++++++++++++++
fs/lockd/svc.c | 2 +-
fs/lockd/svc4proc.c | 7 ++++--
fs/lockd/svclock.c | 82 ++++++++++++++++++++++++++++++++++++--------------------------
fs/lockd/svcproc.c | 6 +++--
fs/lockd/svcsubs.c | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------
fs/nfs/export.c | 2 +-
fs/nfs/file.c | 3 +++
fs/nfsd/lockd.c | 8 ++++--
fs/nfsd/nfs4state.c | 20 ++++++++++-----
fs/nfsd/nfsproc.c | 1 +
fs/nfsd/trace.h | 17 ++++++-------
fs/nfsd/vfs.c | 21 ++++------------
include/linux/errno.h | 1 +
include/linux/exportfs.h | 2 ++
include/linux/fs.h | 1 +
include/linux/lockd/bind.h | 3 ++-
include/linux/lockd/lockd.h | 11 ++++++---
include/linux/sunrpc/msg_prot.h | 1 +
include/linux/sunrpc/svc.h | 5 ++++
include/linux/sunrpc/svc_rdma.h | 7 +++---
include/linux/sunrpc/xdr.h | 1 +
include/linux/sunrpc/xprt.h | 18 --------------
include/linux/sysctl.h | 2 ++
include/trace/events/sunrpc.h | 8 +++---
include/trace/trace_events.h | 22 +++++++++++++++++
include/uapi/linux/nfsd/nfsfh.h | 1 -
kernel/sysctl.c | 42 ++++++++++++++++++++++++++++++++
lib/Kconfig.debug | 7 ++++++
net/sunrpc/auth_gss/svcauth_gss.c | 2 +-
net/sunrpc/debugfs.c | 85 ++++++++++++++++++++--------------------------------------------
net/sunrpc/fail.h | 25 +++++++++++++++++++
net/sunrpc/svc.c | 44 +++++++++++++++++++++++++++++++++
net/sunrpc/svc_xprt.c | 3 +++
net/sunrpc/xprt.c | 14 +++++++++++
net/sunrpc/xprtrdma/svc_rdma_rw.c | 56 +++++++++++++++++++++++++++---------------
net/sunrpc/xprtrdma/svc_rdma_sendto.c | 41 +++++++++++++++++--------------
net/sunrpc/xprtrdma/svc_rdma_transport.c | 11 ++-------
samples/trace_events/trace-events-sample.h | 27 +++++++++++++++++++++
39 files changed, 495 insertions(+), 246 deletions(-)
create mode 100644 net/sunrpc/fail.h
--
Chuck Lever