* [GIT PULL] NFSD changes for the v7.1 merge window
@ 2026-04-19 18:03 Chuck Lever
0 siblings, 0 replies; only message in thread
From: Chuck Lever @ 2026-04-19 18:03 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-nfs, linux-kernel, Jeff Layton
The following changes since commit 7aaa8047eafd0bd628065b15757d9b48c5f9c07d:
Linux 7.0-rc6 (2026-03-29 15:40:00 -0700)
are available in the Git repository at:
https://git.kernel.org/pub/scm/linux/kernel/git/cel/linux.git tags/nfsd-7.1
for you to fetch changes up to d644a698de12e996778657f65a4608299368e138:
NFSD: Docs: clean up pnfs server timeout docs (2026-04-03 09:29:32 -0400)
----------------------------------------------------------------
NFSD 7.1 Release Notes
Benjamin Coddington contributed filehandle signing to defend against
filehandle-guessing attacks. The server now appends a SipHash-2-4
MAC to each filehandle when the new "sign_fh" export option is
enabled. NFSD then verifies filehandles received from clients
against the expected MAC; mismatches return NFS error STALE.
Chuck Lever converted the entire NLMv4 server-side XDR layer from
hand-written C to xdrgen-generated code, spanning roughly thirty
patches. XDR functions are generally boilerplate code and are easy
to get wrong. The goals of this conversion are improved memory
safety, lower maintenance burden, and groundwork for eventual Rust
code generation for these functions.
Dai Ngo improved pNFS block/SCSI layout robustness with two related
changes. SCSI persistent reservation fencing is now tracked per
client and per device via an xarray, to avoid both redundant preempt
operations on devices already fenced and a potential NFSD deadlock
when all nfsd threads are waiting for a layout return.
The remaining patches deliver scalability and infrastructure
improvements. Sincere thanks to all contributors, reviewers,
testers, and bug reporters who participated in the v7.1 NFSD
development cycle.
----------------------------------------------------------------
Andy Shevchenko (3):
nfs/blocklayout: Fix compilation error (`make W=1`) in bl_write_pagelist()
sunrpc: Kill RPC_IFDEBUG()
sunrpc: Fix compilation error (`make W=1`) when dprintk() is no-op
Benjamin Coddington (3):
NFSD: Add a key for signing filehandles
NFSD/export: Add sign_fh export option
NFSD: Sign filehandles
Chuck Lever (59):
lockd: Simplify cast_status() in svcproc.c
lockd: Relocate and rename nlm_drop_reply
lockd: Introduce nlm__int__deadlock
lockd: Have nlm_fopen() return errno values
lockd: Relocate nlmsvc_unlock API declarations
NFS: Use nlmclnt_shutdown_rpc_clnt() to safely shut down NLM
lockd: Move xdr4.h from include/linux/lockd/ to fs/lockd/
lockd: Move share.h from include/linux/lockd/ to fs/lockd/
lockd: Relocate include/linux/lockd/lockd.h
lockd: Remove lockd/debug.h
lockd: Move xdr.h from include/linux/lockd/ to fs/lockd/
lockd: Make linux/lockd/nlm.h an internal header
lockd: Move nlm4svc_set_file_lock_range()
lockd: Relocate svc_version definitions to XDR layer
Documentation: Add the RPC language description of NLM version 4
lockd: Use xdrgen XDR functions for the NLMv4 NULL procedure
lockd: Use xdrgen XDR functions for the NLMv4 TEST procedure
lockd: Use xdrgen XDR functions for the NLMv4 LOCK procedure
lockd: Use xdrgen XDR functions for the NLMv4 CANCEL procedure
lockd: Use xdrgen XDR functions for the NLMv4 UNLOCK procedure
lockd: Use xdrgen XDR functions for the NLMv4 GRANTED procedure
lockd: Refactor nlm4svc_callback()
lockd: Use xdrgen XDR functions for the NLMv4 TEST_MSG procedure
lockd: Use xdrgen XDR functions for the NLMv4 LOCK_MSG procedure
lockd: Use xdrgen XDR functions for the NLMv4 CANCEL_MSG procedure
lockd: Use xdrgen XDR functions for the NLMv4 UNLOCK_MSG procedure
lockd: Use xdrgen XDR functions for the NLMv4 GRANTED_MSG procedure
lockd: Use xdrgen XDR functions for the NLMv4 TEST_RES procedure
lockd: Use xdrgen XDR functions for the NLMv4 LOCK_RES procedure
lockd: Use xdrgen XDR functions for the NLMv4 CANCEL_RES procedure
lockd: Use xdrgen XDR functions for the NLMv4 UNLOCK_RES procedure
lockd: Use xdrgen XDR functions for the NLMv4 GRANTED_RES procedure
lockd: Use xdrgen XDR functions for the NLMv4 SM_NOTIFY procedure
lockd: Convert server-side undefined procedures to xdrgen
lockd: Hoist file_lock init out of nlm4svc_decode_shareargs()
lockd: Prepare share helpers for xdrgen conversion
lockd: Use xdrgen XDR functions for the NLMv4 SHARE procedure
lockd: Use xdrgen XDR functions for the NLMv4 UNSHARE procedure
lockd: Use xdrgen XDR functions for the NLMv4 NM_LOCK procedure
lockd: Use xdrgen XDR functions for the NLMv4 FREE_ALL procedure
lockd: Add LOCKD_SHARE_SVID constant for DOS sharing mode
lockd: Remove C macros that are no longer used
lockd: Remove dead code from fs/lockd/xdr4.c
sunrpc: Add XPT flags missing from SVC_XPRT_FLAG_LIST
nfsd: use dynamic allocation for oversized NFSv4.0 replay cache
SUNRPC: Tighten bounds checking in svc_rqst_replace_page
SUNRPC: Allocate a separate Reply page array
SUNRPC: Handle NULL entries in svc_rqst_release_pages
svcrdma: preserve rq_next_page in svc_rdma_save_io_pages
SUNRPC: Track consumed rq_pages entries
SUNRPC: Optimize rq_respages allocation in svc_alloc_arg
svcrdma: Add fair queuing for Send Queue access
svcrdma: Clean up use of rdma->sc_pd->device in Receive paths
svcrdma: Clean up use of rdma->sc_pd->device
svcrdma: Add Write chunk WRs to the RPC's Send WR chain
svcrdma: Factor out WR chain linking into helper
SUNRPC: Add svc_rqst_page_release() helper
svcrdma: Use contiguous pages for RDMA Read sink buffers
NFSD: use per-operation statidx for callback procedures
Dai Ngo (4):
NFSD: Track SCSI Persistent Registration Fencing per Client with xarray
NFSD: fix nfs4_file access extra count in nfsd4_add_rdaccess_to_wrdeleg
NFSD: Enforce timeout on layout recall and integrate lease manager fencing
NFSD: convert callback RPC program to per-net namespace
Jeff Layton (8):
nfsd/sunrpc: add svc_rqst->rq_private pointer and remove rq_lease_breaker
nfsd/sunrpc: move rq_cachetype into struct nfsd_thread_local_info
nfsd: add a runtime switch for disabling delegated timestamps
nfsd: remove NFSD_V4_DELEG_TIMESTAMPS Kconfig option
sunrpc: convert queue_lock from global spinlock to per-cache-detail lock
sunrpc: convert queue_wait from global to per-cache-detail waitqueue
sunrpc: split cache_detail queue into request and reader lists
nfsd: convert global state_lock to per-net deleg_lock
Joseph Salisbury (2):
nfsd: fix comment typo in nfs3xdr
nfsd: fix comment typo in nfsxdr
NeilBrown (1):
sunrpc/cache: improve RCU safety in cache_list walking.
Randy Dunlap (2):
SUNRPC: xdr.h: fix all kernel-doc warnings
NFSD: Docs: clean up pnfs server timeout docs
Ryota Sakamoto (1):
SUNRPC: Replace KUnit tests for memcmp() with KUNIT_EXPECT_MEMEQ_MSG()
.../admin-guide/nfs/pnfs-block-server.rst | 30 +
Documentation/admin-guide/nfs/pnfs-scsi-server.rst | 31 +
Documentation/filesystems/locking.rst | 2 +
Documentation/filesystems/nfs/exporting.rst | 85 +
Documentation/netlink/specs/nfsd.yaml | 6 +
Documentation/sunrpc/xdr/nlm4.x | 211 +++
fs/lockd/Makefile | 30 +-
fs/lockd/clnt4xdr.c | 5 +-
fs/lockd/clntlock.c | 2 +-
fs/lockd/clntproc.c | 2 +-
fs/lockd/clntxdr.c | 3 +-
fs/lockd/host.c | 31 +-
{include/linux => fs}/lockd/lockd.h | 101 +-
fs/lockd/mon.c | 2 +-
{include/linux => fs}/lockd/nlm.h | 8 +-
fs/lockd/nlm4xdr_gen.c | 724 ++++++++
fs/lockd/nlm4xdr_gen.h | 32 +
{include/linux => fs}/lockd/share.h | 19 +-
fs/lockd/svc.c | 50 +-
fs/lockd/svc4proc.c | 1786 ++++++++++++++------
fs/lockd/svclock.c | 21 +-
fs/lockd/svcproc.c | 126 +-
fs/lockd/svcshare.c | 40 +-
fs/lockd/svcsubs.c | 32 +-
fs/lockd/trace.h | 3 +-
fs/lockd/xdr.c | 6 +-
{include/linux => fs}/lockd/xdr.h | 15 +-
fs/lockd/xdr4.c | 347 ----
fs/locks.c | 26 +-
fs/nfs/blocklayout/blocklayout.c | 4 +-
fs/nfs/nfs3proc.c | 1 +
fs/nfs/proc.c | 1 +
fs/nfs/sysfs.c | 4 +-
fs/nfsd/Kconfig | 12 +-
fs/nfsd/blocklayout.c | 102 +-
fs/nfsd/debugfs.c | 4 +
fs/nfsd/export.c | 5 +-
fs/nfsd/lockd.c | 50 +-
fs/nfsd/netlink.c | 5 +-
fs/nfsd/netns.h | 7 +
fs/nfsd/nfs3xdr.c | 4 +-
fs/nfsd/nfs4callback.c | 113 +-
fs/nfsd/nfs4layouts.c | 152 +-
fs/nfsd/nfs4proc.c | 3 +-
fs/nfsd/nfs4state.c | 113 +-
fs/nfsd/nfs4xdr.c | 26 +-
fs/nfsd/nfscache.c | 3 +-
fs/nfsd/nfsctl.c | 45 +-
fs/nfsd/nfsd.h | 6 +
fs/nfsd/nfsfh.c | 83 +-
fs/nfsd/nfssvc.c | 10 +-
fs/nfsd/nfsxdr.c | 2 +-
fs/nfsd/pnfs.h | 5 +-
fs/nfsd/state.h | 32 +-
fs/nfsd/trace.h | 23 +
include/linux/filelock.h | 1 +
include/linux/lockd/bind.h | 26 +-
include/linux/lockd/debug.h | 40 -
include/linux/lockd/xdr4.h | 43 -
include/linux/sunrpc/cache.h | 7 +-
include/linux/sunrpc/debug.h | 10 +-
include/linux/sunrpc/sched.h | 3 -
include/linux/sunrpc/svc.h | 82 +-
include/linux/sunrpc/svc_rdma.h | 23 +-
include/linux/sunrpc/xdr.h | 48 +-
include/linux/sunrpc/xdrgen/nlm4.h | 233 +++
include/trace/events/sunrpc.h | 4 +-
include/uapi/linux/nfsd/export.h | 4 +-
include/uapi/linux/nfsd_netlink.h | 1 +
net/sunrpc/auth_gss/gss_krb5_test.c | 93 +-
net/sunrpc/cache.c | 251 ++-
net/sunrpc/svc.c | 66 +-
net/sunrpc/svc_xprt.c | 47 +-
net/sunrpc/svcsock.c | 9 +-
net/sunrpc/xprtrdma/svc_rdma_recvfrom.c | 28 +-
net/sunrpc/xprtrdma/svc_rdma_rw.c | 374 +++-
net/sunrpc/xprtrdma/svc_rdma_sendto.c | 194 ++-
net/sunrpc/xprtrdma/svc_rdma_transport.c | 33 +-
78 files changed, 4454 insertions(+), 1757 deletions(-)
create mode 100644 Documentation/sunrpc/xdr/nlm4.x
rename {include/linux => fs}/lockd/lockd.h (83%)
rename {include/linux => fs}/lockd/nlm.h (91%)
create mode 100644 fs/lockd/nlm4xdr_gen.c
create mode 100644 fs/lockd/nlm4xdr_gen.h
rename {include/linux => fs}/lockd/share.h (58%)
rename {include/linux => fs}/lockd/xdr.h (91%)
delete mode 100644 fs/lockd/xdr4.c
delete mode 100644 include/linux/lockd/debug.h
delete mode 100644 include/linux/lockd/xdr4.h
create mode 100644 include/linux/sunrpc/xdrgen/nlm4.h
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-04-19 18:03 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-19 18:03 [GIT PULL] NFSD changes for the v7.1 merge window Chuck Lever
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox