linux/fs/nfsd
Linus Torvalds 36d179fd6b 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.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEKLLlsBKG3yQ88j7+M2qzM29mf5cFAmnlF50ACgkQM2qzM29m
 f5dfHBAAi2o1i9/RA6fmxi2qSV7tkg79viuGFRj3c4cjiW8ZqQXos63zmy6BNMFG
 joEoirdryUETkrrckXP81HKGSWBQqYjaXeklOw8dggQ8g72HGiqcoT3Ua7L9S7A8
 /Db6IwZnJcehHO8XwHV4jSAfIZuvC0iiK02tVrVe/l/9GWcG+bS340GgE9Es2IAW
 copBGlTwQah+eRvy2hP+Eo3vUTP8Rdebp9iYFI12xqx2x3LquFR01PpjCzotqAvV
 AcvCPa/AGoSOjcL8idloL8F8mSaOCyx15YJH0lm3hRsPtS/VyXWjKvcejWUh/7PH
 gHi+5VTsSKbUBj3PJQZU6rBQ67KnwVLZ33KkIF2ZNGllvK0yDGM0UfX/TuaEPjUV
 6N0UkRprCHJdrULt9XMXmX3Ddnz1xbYT8CaeIDObw3Ix7SJKedvlLTjvsYCYtsQn
 5pkHUuHmr/YAF4AQi/JI4ubZhZ+K3YytNS8YiMUkBWDbPoKzo2yrkzwjGjHdUp0y
 l8LfEjePAcIpuFQZegERA9CnjIeKb66DJe8da0EwtreY+sejm/S8zbBUhMkXjo6u
 QwdXXeLX3/zni6Op8vRA5JH//S5ovlQFnkUSvHRItSUrDBRVm+wXD7Vnp9bykKcN
 leqbSvehnV4PIi0URMvN5ox1WNmsOFIZkv9nv8amyOX8PlRmLoA=
 =iFl6
 -----END PGP SIGNATURE-----

Merge tag 'nfsd-7.1' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux

Pull nfsd updates from Chuck Lever:

 - filehandle signing to defend against filehandle-guessing attacks
   (Benjamin Coddington)

   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

 - convert the entire NLMv4 server-side XDR layer from hand-written C to
   xdrgen-generated code, spanning roughly thirty patches (Chuck Lever)

   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.

 - improve pNFS block/SCSI layout robustness with two related changes
   (Dai Ngo)

   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.

 - scalability and infrastructure improvements

   Sincere thanks to all contributors, reviewers, testers, and bug
   reporters who participated in the v7.1 NFSD development cycle.

* tag 'nfsd-7.1' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux: (83 commits)
  NFSD: Docs: clean up pnfs server timeout docs
  nfsd: fix comment typo in nfsxdr
  nfsd: fix comment typo in nfs3xdr
  NFSD: convert callback RPC program to per-net namespace
  NFSD: use per-operation statidx for callback procedures
  svcrdma: Use contiguous pages for RDMA Read sink buffers
  SUNRPC: Add svc_rqst_page_release() helper
  SUNRPC: xdr.h: fix all kernel-doc warnings
  svcrdma: Factor out WR chain linking into helper
  svcrdma: Add Write chunk WRs to the RPC's Send WR chain
  svcrdma: Clean up use of rdma->sc_pd->device
  svcrdma: Clean up use of rdma->sc_pd->device in Receive paths
  svcrdma: Add fair queuing for Send Queue access
  SUNRPC: Optimize rq_respages allocation in svc_alloc_arg
  SUNRPC: Track consumed rq_pages entries
  svcrdma: preserve rq_next_page in svc_rdma_save_io_pages
  SUNRPC: Handle NULL entries in svc_rqst_release_pages
  SUNRPC: Allocate a separate Reply page array
  SUNRPC: Tighten bounds checking in svc_rqst_replace_page
  NFSD: Sign filehandles
  ...
2026-04-20 10:44:02 -07:00
..
acl.h NFSD: Add support for XDR decoding POSIX draft ACLs 2026-01-29 09:48:33 -05:00
auth.c nfsd: avoid pointless cred reference count bump 2024-12-02 11:25:14 +01:00
auth.h nfsd: Pass 'cred' instead of 'rqstp' to some functions. 2024-09-20 19:31:03 -04:00
blocklayout.c NFSD: Enforce timeout on layout recall and integrate lease manager fencing 2026-03-29 21:25:09 -04:00
blocklayoutxdr.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
blocklayoutxdr.h NFSD/blocklayout: Introduce layout content structure 2025-11-16 18:20:11 -05:00
cache.h nfsd: don't allocate the versions array. 2024-09-20 19:29:23 -04:00
current_stateid.h
debugfs.c nfsd: add a runtime switch for disabling delegated timestamps 2026-03-29 21:25:09 -04:00
export.c NFSD 7.1 Release Notes 2026-04-20 10:44:02 -07:00
export.h NFSD: Defer sub-object cleanup in export put callbacks 2026-03-14 11:34:25 -04:00
filecache.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
filecache.h nfsd: allow filecache to hold S_IFDIR files 2025-11-12 09:38:36 +01:00
flexfilelayout.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
flexfilelayoutxdr.c NFSD: Rework encoding and decoding of nfsd4_deviceid 2025-09-21 19:24:50 -04:00
flexfilelayoutxdr.h
idmap.h
Kconfig NFSD: Sign filehandles 2026-03-29 21:25:09 -04:00
localio.c NFSD 6.18 Release Notes 2025-10-06 13:22:21 -07:00
lockd.c lockd: Have nlm_fopen() return errno values 2026-03-29 21:25:09 -04:00
Makefile NFSD: Add instructions on how to deal with xdrgen files 2026-01-26 10:10:58 -05:00
netlink.c NFSD: Add a key for signing filehandles 2026-03-29 21:25:09 -04:00
netlink.h tools: ynl-gen: add regeneration comment 2025-11-25 19:20:42 -08:00
netns.h NFSD: convert callback RPC program to per-net namespace 2026-04-03 09:27:52 -04:00
nfs2acl.c NFS: NFSERR_INVAL is not defined by NFSv2 2026-01-26 10:10:58 -05:00
nfs3acl.c nfsd: clear acl_access/acl_default after releasing them 2025-02-02 11:31:45 -05:00
nfs3proc.c vfs-6.19-rc1.directory.locking 2025-12-01 16:13:46 -08:00
nfs3xdr.c nfsd: fix comment typo in nfs3xdr 2026-04-03 09:28:47 -04:00
nfs4acl.c NFSD: Add support for XDR decoding POSIX draft ACLs 2026-01-29 09:48:33 -05:00
nfs4callback.c NFSD: convert callback RPC program to per-net namespace 2026-04-03 09:27:52 -04:00
nfs4idmap.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
nfs4layouts.c NFSD: Enforce timeout on layout recall and integrate lease manager fencing 2026-03-29 21:25:09 -04:00
nfs4proc.c nfsd/sunrpc: add svc_rqst->rq_private pointer and remove rq_lease_breaker 2026-03-29 21:25:09 -04:00
nfs4recover.c nfsd: switch purge_old() to use start_removing_noperm() 2026-03-06 10:24:12 +01:00
nfs4state.c NFSD 7.1 Release Notes 2026-04-20 10:44:02 -07:00
nfs4xdr_gen.c Add RPC language definition of NFSv4 POSIX ACL extension 2026-01-29 09:48:33 -05:00
nfs4xdr_gen.h Add RPC language definition of NFSv4 POSIX ACL extension 2026-01-29 09:48:33 -05:00
nfs4xdr.c nfsd: use dynamic allocation for oversized NFSv4.0 replay cache 2026-03-29 21:25:09 -04:00
nfscache.c nfsd/sunrpc: move rq_cachetype into struct nfsd_thread_local_info 2026-03-29 21:25:09 -04:00
nfsctl.c NFSD: convert callback RPC program to per-net namespace 2026-04-03 09:27:52 -04:00
nfsd.h nfsd: add a runtime switch for disabling delegated timestamps 2026-03-29 21:25:09 -04:00
nfsfh.c NFSD 7.1 Release Notes 2026-04-20 10:44:02 -07:00
nfsfh.h NFSD: Move the fh_getattr() helper 2025-09-21 19:24:50 -04:00
nfsproc.c NFS: NFSERR_INVAL is not defined by NFSv2 2026-01-26 10:10:58 -05:00
nfssvc.c nfsd/sunrpc: move rq_cachetype into struct nfsd_thread_local_info 2026-03-29 21:25:09 -04:00
nfsxdr.c nfsd: fix comment typo in nfsxdr 2026-04-03 09:29:07 -04:00
pnfs.h NFSD: Enforce timeout on layout recall and integrate lease manager fencing 2026-03-29 21:25:09 -04:00
state.h NFSD: convert callback RPC program to per-net namespace 2026-04-03 09:27:52 -04:00
stats.c nfsd: don't ignore the return code of svc_proc_register() 2025-03-10 09:10:59 -04:00
stats.h nfsd: don't ignore the return code of svc_proc_register() 2025-03-10 09:10:59 -04:00
trace.c
trace.h NFSD: Sign filehandles 2026-03-29 21:25:09 -04:00
vfs.c treewide: change inode->i_ino from unsigned long to u64 2026-03-06 14:31:28 +01:00
vfs.h NFSD: Refactor nfsd_setattr()'s ACL error reporting 2026-01-29 09:48:33 -05:00
xdr.h
xdr3.h
xdr4.h NFSD: Add support for XDR decoding POSIX draft ACLs 2026-01-29 09:48:33 -05:00
xdr4cb.h NFSD: Implement CB_SEQUENCE referring call lists 2025-05-11 19:48:20 -04:00