public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [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