linux/fs/nfsd
Linus Torvalds 47439bb163 NFSD 7.4 Release Notes
Jeff Layton extended the netlink listener-set operation so that a
 management daemon can register NFSD's programs with rpcbind itself.
 This prevents an unresponsive rpcbind from stalling NFSD adminis-
 tration for a minute at a time.
 
 Bulk delegation recall now adjusts the number of delegations it
 wants returned, based on memory pressure. The previous mechanism
 was spec-conformant, but it requested all delegations to be
 returned at once. Clients are free to return few or none in such
 cases, but requesting smaller batches of delegations is more
 neighborly.
 
 In preparation for handling TLS KeyUpdate, the server's TCP receive
 path has been reworked to handle control records. In the process,
 the use of sock_recvmsg was replaced with ->read_sock, which contends
 less with other holders of the socket lock.
 
 NFSv2 XDR code is now generated by xdrgen, which mechanically
 generates the encoders and decoders from the RPC language
 specification for the protocol. Replacing hand-built XDR code
 makes prototyping new protocol elements faster, reduces errors, and
 improves memory safety. Replacement of XDR code for newer NFS
 versions will continue in subsequent releases of NFSD.
 
 The remaining bulk of changes in v7.4 is bug fixes, clean-ups, and
 small optimizations. Sincere thanks to all contributors, reviewers,
 testers, and bug reporters who participated in the v7.4 NFSD
 development cycle.
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCgAdFiEEKLLlsBKG3yQ88j7+M2qzM29mf5cFAmrWH4UACgkQM2qzM29m
 f5fXERAAh9q+yWcSAFxYC4KcG08QEFZcTCXre0C0/EhjQI0KEJBv+8yd3ffUZrfM
 157ZuQeFFiTMnAqpW2nf3odhOC8B9OZj8JV+D1Ov7de5r/S0F7Aqg7NDjDzVdQg1
 PFKElow/3jgECNiU5eQhKJQoJ2PTQmO74JeoZ2KTqM/JrGzzSXaqcp03+93GJoaK
 XUsjN6mJB4P4s27SqCJlf+ouALHtvULOul4rzYIIvI445oIt5Gz3CgsIvoTBU4cj
 qOoToVFvlx6CQnohuGcR+H+HmG1+d4ygwhHL+4XkJTtLwbNPa+31FrRNLy+P5OXz
 QM9iots9X2UIl09StUsmSUfQNztCr+SWNu1l1kJOO+OQam1xFvqri8p6BxKUC5YM
 JZvn6QRvbmLPh3CzLyOQdhzqbYSENZsfob20Sd9C2V7d6V+D/95AB3pnxwwakvZ8
 5WBoo358cA7dJBIpYQ22jkQzyYzt5cNrWCBemDF/OOLauR9UZnLTgo9+q7VNYWu/
 nvRZ8Bkg0mPYWKmduJLeVVbOFwIr5zbfpGPInatdqiWyl5SWFeYK+vvgnbEnRNqt
 iMHDB6MNw7ItAb+jCgFteMVtx4w6umJLLcwzhiewqgGkmMZ8gwxBuu2BSgtkbfQW
 ZqEZSVHlYY1H0YkWM/p8YdyMs0nA5I9mCcxDc+rC2cMCMlYUULM=
 =AQBo
 -----END PGP SIGNATURE-----

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

Pull nfsd updates from Chuck Lever:
 "Jeff Layton extended the netlink listener-set operation so that
  a management daemon can register NFSD's programs with rpcbind
  itself. This prevents an unresponsive rpcbind from stalling NFSD
  administration for a minute at a time.

  Bulk delegation recall now adjusts the number of delegations it
  wants returned, based on memory pressure. The previous mechanism
  was spec-conformant, but it requested all delegations to be
  returned at once. Clients are free to return few or none in such
  cases, but requesting smaller batches of delegations is more
  neighborly.

  In preparation for handling TLS KeyUpdate, the server's TCP
  receive path has been reworked to handle control records. In the
  process, the use of sock_recvmsg was replaced with ->read_sock,
  which contends less with other holders of the socket lock.

  NFSv2 XDR code is now generated by xdrgen, which mechanically
  generates the encoders and decoders from the RPC language
  specification for the protocol. Replacing hand-built XDR code
  makes prototyping new protocol elements faster, reduces errors,
  and improves memory safety. Replacement of XDR code for newer NFS
  versions will continue in subsequent releases of NFSD.

  The remaining bulk of changes in v7.4 is bug fixes, clean-ups, and
  small optimizations. Sincere thanks to all contributors,
  reviewers, testers, and bug reporters who participated in the v7.4
  NFSD development cycle"

* tag 'nfsd-7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux: (184 commits)
  SUNRPC: use assign_bit() where applicable
  nfsd: Fix id-to-name cache entry leak in idtoname_parse()
  NFSD: Use xdrgen XDR functions for NFSv2 READDIR results
  NFSD: Refactor NFSv2 directory cookie encoding
  NFSD: Add a streaming directory reader
  NFSD: Use xdrgen XDR functions for NFSv2 READDIR arguments
  NFSD: Use xdrgen XDR functions for the NFSv2 STATFS procedure
  NFSD: Use xdrgen XDR functions for NFSv2 RMDIR procedure
  NFSD: Use xdrgen XDR functions for NFSv2 MKDIR procedure
  NFSD: Use xdrgen XDR functions for NFSv2 SYMLINK procedure
  NFSD: Use xdrgen XDR functions for the NFSv2 LINK procedure
  NFSD: Use xdrgen XDR functions for the NFSv2 RENAME procedure
  NFSD: Use xdrgen XDR functions for the NFSv2 REMOVE procedure
  NFSD: Use xdrgen XDR functions for NFSv2 CREATE procedure
  NFSD: Refactor nfsd_proc_create()
  NFSD: Use xdrgen XDR functions for NFSv2 WRITE procedure
  NFSD: Use xdrgen XDR functions for the NFSv2 WRITECACHE procedure
  NFSD: Use xdrgen XDR functions for NFSv2 READ procedure
  NFSD: Use xdrgen XDR functions for NFSv2 READLINK procedure
  NFSD: Use xdrgen XDR functions for the NFSv2 LOOKUP procedure
  ...
2026-10-25 15:12:41 -10:00
..
acl.h NFSD: Add support for XDR decoding POSIX draft ACLs 2026-01-29 09:48:33 -05:00
attr4.h NFSD: Relocate NFSv4 "supported attributes" to new header 2026-08-10 09:54:35 -04:00
auth.c NFSD: Relocate nfsd_user_namespace() 2026-08-10 09:54:35 -04:00
auth.h NFSD: Relocate nfsd_user_namespace() 2026-08-10 09:54:35 -04:00
blocklayout.c NFSD: Move pre-xdr'ed status codes out of nfsd.h 2026-10-04 21:15:29 -04:00
blocklayoutxdr.c NFSD: Move pre-xdr'ed status codes out of nfsd.h 2026-10-04 21:15:29 -04:00
blocklayoutxdr.h NFSD/blocklayout: Introduce layout content structure 2025-11-16 18:20:11 -05:00
cache.h NFSD: Remove '#include "nfsd.h"' from fs/nfsd/cache.h 2026-08-10 09:54:35 -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: Evacuate NFSv4 entry-point prototypes from nfsd.h 2026-10-04 21:15:29 -04:00
export.h nfsd: move check_nfsd_access() call into nfsd_cross_mnt() 2026-10-04 21:15:29 -04:00
filecache.c nfsd: fetch direct I/O alignment for files handed to the filecache 2026-10-04 21:15:29 -04:00
filecache.h nfsd: update the fsnotify mark when setting or removing a dir delegation 2026-08-10 09:54:35 -04:00
flexfilelayout.c NFSD: Use struct knfsd_fh in struct pnfs_ff_layout 2026-10-04 21:15:29 -04:00
flexfilelayoutxdr.c NFSD: Use struct knfsd_fh in struct pnfs_ff_layout 2026-10-04 21:15:29 -04:00
flexfilelayoutxdr.h NFSD: Use struct knfsd_fh in struct pnfs_ff_layout 2026-10-04 21:15:29 -04:00
idmap.h
Kconfig NFSD: Sign filehandles 2026-03-29 21:25:09 -04:00
localio.c NFSD: Don't apply NFS version-specific behavior to LOCALIO requests 2026-10-04 21:15:29 -04:00
lockd.c NFSD: Include <linux/nfs_fh.h> where struct nfs_fh is used 2026-10-04 21:15:29 -04:00
Makefile NFSD: Add infrastructure for generating NFSv2 XDR encoders and decoders 2026-10-11 23:12:12 -04:00
netlink.c NFSD: add a userspace-rpcbind flag to listener_set 2026-10-11 23:11:55 -04:00
netlink.h nfsd: implement server-stats-get netlink handler 2026-08-10 09:54:35 -04:00
netns.h NFSD: Apportion CB_RECALL_ANY recalls among clients 2026-10-04 21:15:29 -04:00
nfs2acl.c NFSD: Remove '#include "xdr.h"' from fs/nfsd/xdr3.h 2026-10-11 23:12:16 -04:00
nfs2xdr_gen.c NFSD: Use xdrgen XDR functions for NFSv2 READDIR results 2026-10-11 23:13:03 -04:00
nfs2xdr_gen.h NFSD: Use xdrgen XDR functions for NFSv2 READDIR results 2026-10-11 23:13:03 -04:00
nfs3acl.c NFSD: map fh_verify() status codes for NFS_ACLv3 replies 2026-10-11 23:12:08 -04:00
nfs3proc.c NFSD: Move the nfs3.h include out of nfsd.h 2026-10-04 21:15:29 -04:00
nfs3xdr.c NFSD: Remove '#include "xdr.h"' from fs/nfsd/xdr3.h 2026-10-11 23:12:16 -04:00
nfs4acl.c NFSD: Move pre-xdr'ed status codes out of nfsd.h 2026-10-04 21:15:29 -04:00
nfs4callback.c NFSD: Send referring calls with CB_RECALL 2026-10-04 21:15:29 -04:00
nfs4ctl.h NFSD: Evacuate NFSv4 entry-point prototypes from nfsd.h 2026-10-04 21:15:29 -04:00
nfs4idmap.c nfsd: Fix id-to-name cache entry leak in idtoname_parse() 2026-10-11 23:13:05 -04:00
nfs4layouts.c NFSD 7.4 Release Notes 2026-10-25 15:12:41 -10:00
nfs4proc.c NFSD: return NFS4ERR_EXIST for a guarded OPEN of a non-regular object 2026-10-04 21:15:29 -04:00
nfs4recover.c NFSD 7.4 Release Notes 2026-10-25 15:12:41 -10:00
nfs4state.c nfsd: hold cl_lock in client_has_openowners() 2026-10-04 21:15:29 -04:00
nfs4xdr_gen.c xdrgen: Emit a blank line ahead of enum declarations 2026-08-10 09:54:35 -04:00
nfs4xdr_gen.h xdrgen: Emit a blank line ahead of enum declarations 2026-08-10 09:54:35 -04:00
nfs4xdr.c nfsd: use xdr_encode_opaque_fixed for all GETXATTR fragments 2026-10-11 23:12:04 -04:00
nfscache.c NFSD: Move pre-xdr'ed status codes out of nfsd.h 2026-10-04 21:15:29 -04:00
nfsctl.c NFSD: report registerable programs in the listener_set reply 2026-10-11 23:11:59 -04:00
nfsd.h NFSD: Use xdrgen-generated NFSv2 protocol definitions 2026-10-11 23:12:14 -04:00
nfserr.h NFSD: Use xdrgen-generated NFSv2 protocol definitions 2026-10-11 23:12:14 -04:00
nfsfh.c NFSD: Move the nfs3.h include out of nfsd.h 2026-10-04 21:15:29 -04:00
nfsfh.h NFSD: Remove '#include "xdr.h"' from fs/nfsd/xdr3.h 2026-10-11 23:12:16 -04:00
nfsproc.c NFSD: Use xdrgen XDR functions for NFSv2 READDIR results 2026-10-11 23:13:03 -04:00
nfssvc.c NFSD: report registerable programs in the listener_set reply 2026-10-11 23:11:59 -04:00
nfsxdr.c NFSD: Use xdrgen XDR functions for NFSv2 READDIR results 2026-10-11 23:13:03 -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: Count the delegations held by each client 2026-10-04 21:15:29 -04:00
stats.c nfsd: count NFSv4 callback operations per netns 2026-08-10 09:54:35 -04:00
stats.h nfsd: count NFSv4 callback operations per netns 2026-08-10 09:54:35 -04:00
trace.c
trace.h NFSD: Replace the use of include/trace/misc/nfs.h 2026-10-04 21:15:29 -04:00
vfs.c NFSD 7.4 Release Notes 2026-10-25 15:12:41 -10:00
vfs.h NFSD: Add a streaming directory reader 2026-10-11 23:12:59 -04:00
xdr.h NFSD: Use xdrgen XDR functions for NFSv2 READDIR results 2026-10-11 23:13:03 -04:00
xdr3.h NFSD: Remove '#include "xdr.h"' from fs/nfsd/xdr3.h 2026-10-11 23:12:16 -04:00
xdr4.h nfsd: don't modify a session slot when replaying its cached reply 2026-10-04 21:15:29 -04:00
xdr4cb.h NFSD: Budget the CB_RECALL_ANY opcode 2026-10-04 21:15:29 -04:00