* [GIT PULL] NFSD changes for v7.2
@ 2026-06-17 13:42 Chuck Lever
0 siblings, 0 replies; only message in thread
From: Chuck Lever @ 2026-06-17 13:42 UTC (permalink / raw)
To: Linus Torvalds; +Cc: linux-nfs, linux-kernel, Jeff Layton
The following changes since commit e43ffb69e0438cddd72aaa30898b4dc446f664f8:
Linux 7.1-rc6 (2026-05-31 15:14:24 -0700)
are available in the Git repository at:
https://git.kernel.org/pub/scm/linux/kernel/git/cel/linux.git tags/nfsd-7.2
for you to fetch changes up to e5248a7426030db1e126363f72afdb3b71339a5c:
svcrdma: wake sq waiters when the transport closes (2026-06-09 16:32:59 -0400)
----------------------------------------------------------------
NFSD 7.2 Release Notes
Jeff Layton wired up netlink upcalls for the auth.unix.ip and
auth.unix.gid caches in SunRPC and the svc_export and nfsd.fh
caches in NFSD. The new kernel-user API is more extensible and
lays the groundwork for retiring the old pipe interface.
The default NFS r/w block size rises to 4MB on hosts with at least
16GB of RAM, reducing per-RPC overhead on fast networks. Smaller
machines keep their previously computed default, and the value
remains tunable through /proc/fs/nfsd/max_block_size.
Chuck Lever converted the server's RPCSEC GSS Kerberos code to the
kernel's shared crypto/krb5 library. The conversion retires and
removes SunRPC's bespoke implementation of Kerberos v5, but keeps
RPCSEC GSS-API.
Continuing the xdrgen migration that converted the NLMv4 server XDR
layer in v7.1, Chuck Lever converted the NLM version 3 server-side
XDR layer from hand-written C to xdrgen-generated code. As with the
NLMv4 conversion in v7.1, the goals are improved memory safety,
lower maintenance burden, and groundwork for generation of Rust code
for this layer instead of C.
Chuck Lever fixed an issue where lingering NFSv4 state pins a
mounted file system after it is unexported. A new netlink-based
mechanism can now release NLM locks and NFSv4 state by client
address, by filesystem, and by export. Now an administrator can
quiesce an export cleanly before unmounting it.
The remaining patches are bug fixes, clean-ups, and minor
optimizations, including a batch of memory-leak and use-after-free
fixes in the ACL, lockd, and TLS handshake paths, many of them
reported by Chris Mason. Sincere thanks to all contributors,
reviewers, testers, and bug reporters who participated in the v7.2
NFSD development cycle.
----------------------------------------------------------------
Chris Mason (2):
nfsd: release layout stid on setlease failure
sunrpc: pin svc_xprt across the asynchronous TLS handshake callback
Christian Brauner (4):
Merge patch series "cleanup block-style layouts exports"
Merge patch series "Exposing case folding behavior"
Merge patch series "Casefold Fixes"
Merge patch series "VFS changes for nfsd CB_NOTIFY callbacks in directory delegations"
Christoph Hellwig (4):
nfsd/blocklayout: always ignore loca_time_modify
exportfs: split out the ops for layout-based block device access
exportfs: don't pass struct iattr to ->commit_blocks
exportfs,nfsd: rework checking for layout-based block device access support
Chuck Lever (104):
fs: Move file_kattr initialization to callers
fs: Add case sensitivity flags to file_kattr
fat: Implement fileattr_get for case sensitivity
exfat: Implement fileattr_get for case sensitivity
ntfs3: Implement fileattr_get for case sensitivity
hfs: Implement fileattr_get for case sensitivity
hfsplus: Report case sensitivity in fileattr_get
xfs: Report case sensitivity in fileattr_get
cifs: Implement fileattr_get for case sensitivity
nfs: Implement fileattr_get for case sensitivity
vboxsf: Implement fileattr_get for case sensitivity
isofs: Implement fileattr_get for case sensitivity
nfsd: Report export case-folding via NFSv3 PATHCONF
nfsd: Implement NFSv4 FATTR4_CASE_INSENSITIVE and FATTR4_CASE_PRESERVING
ksmbd: Report filesystem case sensitivity via FS_ATTRIBUTE_INFORMATION
tools headers UAPI: Sync case-sensitivity flags from linux/fs.h
nfs: Avoid transient zeroed case capability bits during probe
nfs: Skip pathconf probe when neither field is consumed
fs: Clarify FS_CASEFOLD_FL semantics in UAPI header
nfsd: Use kernel credentials for case-info probe
nfsd: Map -ESTALE from case probe to NFS3ERR_STALE
nfsd: Cap case-folding probe cost across READDIR entries
Merge remote-tracking branches 'vfs/vfs-7.2.casefold', 'vfs/vfs-7.2.directory.delegations' and 'vfs/vfs-7.2.exportfs' into vfs-7.2-merge
sunrpc: skip svc_xprt_enqueue when no work is pending
sunrpc: skip svc_xprt_enqueue in svc_xprt_received when idle
sunrpc: skip svc_xprt_enqueue when transport is busy
NFSD: Fix delegation reference leak in nfsd4_revoke_states
NFSD: Put cache get-reqs dump attrs under reply
NFSD: Update my maintainer email addresses
NFSD: Handle layout stid in nfsd4_drop_revoked_stid()
NFSD: Extract revoke_one_stid() utility function
NFSD: Add NFSD_CMD_UNLOCK_IP netlink command
NFSD: Add NFSD_CMD_UNLOCK_FILESYSTEM netlink command
NFSD: Replace idr_for_each_entry_ul in find_one_sb_stid()
NFSD: Track svc_export in nfs4_stid
NFSD: Add NFSD_CMD_UNLOCK_EXPORT netlink command
NFSD: Close cached file handles when revoking export state
NFSD: Increase the default max_block_size to 4MB
SUNRPC: Add Kconfig dependency on CRYPTO_KRB5
SUNRPC: Add crypto/krb5 enctype lookup to krb5_ctx
SUNRPC: Add helpers to convert xdr_buf byte ranges to scatterlists
SUNRPC: Add errno-to-GSS status conversion helper
SUNRPC: Prepare crypto/krb5 encryption and checksum handles
SUNRPC: Switch wrap token encryption to crypto/krb5
SUNRPC: Switch wrap token decryption to crypto/krb5
SUNRPC: Switch Camellia decrypt to crypto/krb5
SUNRPC: Switch MIC token generation to crypto/krb5
SUNRPC: Switch MIC token verification to crypto/krb5
SUNRPC: Remove get_mic/verify_mic function pointers from enctype table
SUNRPC: Remove wrap/unwrap function pointers from enctype table
SUNRPC: Remove encrypt/decrypt function pointers from enctype table
SUNRPC: Remove legacy skcipher/ahash handles from krb5_ctx
SUNRPC: Remove dead code from rpcsec_gss_krb5
SUNRPC: Remove per-enctype Kconfig options
SUNRPC: Remove redundant crypto Kconfig dependencies
SUNRPC: Remove dead rpcsec_gss_krb5 definitions
svcrdma: Release write chunk resources without re-queuing
svcrdma: Defer send context release to xpo_release_ctxt
lockd: Stop warning on nlm__int__drop_reply in !V4 cast_status
lockd: Correct kernel-doc status descriptions for NLMv4 GRANTED
lockd: Drop locks_init_lock() from nlm4_lock_to_lockd_lock()
lockd: Translate nlm__int__deadlock in __nlm4svc_proc_lock_msg()
lockd: Do not monitor when looking up the LOCK_MSG callback host
Documentation: Add the RPC language description of NLM version 3
lockd: Rename struct nlm_cookie to lockd_cookie
lockd: Rename struct nlm_lock to lockd_lock
lockd: Rename struct nlm_args to lockd_args
lockd: Rename struct nlm_res to lockd_res
lockd: Rename struct nlm_reboot to lockd_reboot
lockd: Rename struct nlm_share to lockd_share
lockd: Use xdrgen XDR functions for the NLMv3 NULL procedure
lockd: Use xdrgen XDR functions for the NLMv3 TEST procedure
lockd: Use xdrgen XDR functions for the NLMv3 LOCK procedure
lockd: Use xdrgen XDR functions for the NLMv3 CANCEL procedure
lockd: Use xdrgen XDR functions for the NLMv3 UNLOCK procedure
lockd: Use xdrgen XDR functions for the NLMv3 GRANTED procedure
lockd: Refactor nlmsvc_callback()
lockd: Use xdrgen XDR functions for the NLMv3 TEST_MSG procedure
lockd: Use xdrgen XDR functions for the NLMv3 LOCK_MSG procedure
lockd: Use xdrgen XDR functions for the NLMv3 CANCEL_MSG procedure
lockd: Use xdrgen XDR functions for the NLMv3 UNLOCK_MSG procedure
lockd: Use xdrgen XDR functions for the NLMv3 GRANTED_MSG procedure
lockd: Use xdrgen XDR functions for the NLMv3 TEST_RES procedure
lockd: Use xdrgen XDR functions for the NLMv3 LOCK_RES procedure
lockd: Use xdrgen XDR functions for the NLMv3 CANCEL_RES procedure
lockd: Use xdrgen XDR functions for the NLMv3 UNLOCK_RES procedure
lockd: Use xdrgen XDR functions for the NLMv3 GRANTED_RES procedure
lockd: Use xdrgen XDR functions for the NLMv3 SM_NOTIFY procedure
lockd: Convert NLMv3 server-side undefined procedures to xdrgen
lockd: Use xdrgen XDR functions for the NLMv3 SHARE procedure
lockd: Use xdrgen XDR functions for the NLMv3 UNSHARE procedure
lockd: Use xdrgen XDR functions for the NLMv3 NM_LOCK procedure
lockd: Use xdrgen XDR functions for the NLMv3 FREE_ALL procedure
lockd: Remove C macros that are no longer used
lockd: Remove dead code from fs/lockd/xdr.c
lockd: Unify cast_status
Revert "svcrdma: Use contiguous pages for RDMA Read sink buffers"
lockd: Plug nlm_file leak when nlm_do_fopen() fails
lockd: Plug nlm_file refcount leak on cached nlm_do_fopen() failure
lockd: Avoid hashing uninitialized bytes in nlm4svc_lookup_file()
SUNRPC: Bound-check xdr_buf_to_bvec() stores before writing
SUNRPC: Return an error from xdr_buf_to_bvec() on overflow
sunrpc: wait for in-flight TLS handshake callback when cancel loses race
svcrdma: wake sq waiters when the transport closes
Dominik Woźniak (1):
nfsd: check get_user() return when reading princhashlen
Guannan Wang (1):
NFSD: Fix SECINFO_NO_NAME decode error cleanup
Jeff Layton (27):
filelock: pass current blocking lease to trace_break_lease_block() rather than "new_fl"
filelock: add support for ignoring deleg breaks for dir change events
filelock: add a tracepoint to start of break_lease()
filelock: add an inode_lease_ignore_mask helper
fsnotify: new tracepoint in fsnotify()
fsnotify: add fsnotify_modify_mark_mask()
fsnotify: add FSNOTIFY_EVENT_RENAME data type
filelock: move LEASE_BREAK_* flags out of #ifdef CONFIG_FILE_LOCKING
nfsd: move struct nfsd_genl_rqstp to nfsctl.c
sunrpc: rename sunrpc_cache_pipe_upcall() to sunrpc_cache_upcall()
sunrpc: rename sunrpc_cache_pipe_upcall_timeout()
sunrpc: rename cache_pipe_upcall() to cache_do_upcall()
sunrpc: add a cache_notify callback
sunrpc: add helpers to count and snapshot pending cache requests
sunrpc: add a generic netlink family for cache upcalls
sunrpc: add netlink upcall for the auth.unix.ip cache
sunrpc: add netlink upcall for the auth.unix.gid cache
nfsd: add netlink upcall for the svc_export cache
nfsd: add netlink upcall for the nfsd.fh cache
sunrpc: add SUNRPC_CMD_CACHE_FLUSH netlink command
nfsd: add NFSD_CMD_CACHE_FLUSH netlink command
nfsd: fix dead ACL conflict guard in nfsd4_create
nfsd: fix inverted cp_ttl check in async copy reaper
nfsd: fix posix_acl leak and ignored error in nfsd4_create_file
nfsd: fix posix_acl leak on SETACL decode failure
nfsd: avoid leaking pre-allocated openowner on unconfirmed retry race
nfsd: reset write verifier on deferred writeback errors
Luxiao Xu (1):
sunrpc: harden rq_procinfo lifecycle to prevent double-free
Yang Erkun (1):
Revert "NFSD: Defer sub-object cleanup in export put callbacks"
.mailmap | 6 +-
Documentation/netlink/specs/nfsd.yaml | 290 ++++
Documentation/netlink/specs/sunrpc_cache.yaml | 149 ++
Documentation/sunrpc/xdr/nlm3.x | 168 ++
MAINTAINERS | 10 +-
fs/attr.c | 2 +-
fs/exfat/exfat_fs.h | 2 +
fs/exfat/file.c | 18 +-
fs/exfat/namei.c | 1 +
fs/fat/fat.h | 3 +
fs/fat/file.c | 36 +
fs/fat/namei_msdos.c | 1 +
fs/fat/namei_vfat.c | 1 +
fs/file_attr.c | 16 +-
fs/hfs/dir.c | 1 +
fs/hfs/hfs_fs.h | 2 +
fs/hfs/inode.c | 14 +
fs/hfsplus/inode.c | 16 +-
fs/isofs/dir.c | 16 +
fs/isofs/isofs.h | 3 +
fs/lockd/Makefile | 19 +-
fs/lockd/clnt4xdr.c | 42 +-
fs/lockd/clntlock.c | 2 +-
fs/lockd/clntproc.c | 14 +-
fs/lockd/clntxdr.c | 44 +-
fs/lockd/host.c | 4 +-
fs/lockd/lockd.h | 65 +-
fs/lockd/mon.c | 2 +-
fs/lockd/nlm3xdr_gen.c | 714 +++++++++
fs/lockd/nlm3xdr_gen.h | 32 +
fs/lockd/share.h | 4 +-
fs/lockd/svc4proc.c | 72 +-
fs/lockd/svclock.c | 38 +-
fs/lockd/svcproc.c | 1844 ++++++++++++++--------
fs/lockd/svcshare.c | 8 +-
fs/lockd/svcsubs.c | 9 +-
fs/lockd/svcxdr.h | 142 --
fs/lockd/trace.h | 16 +-
fs/lockd/xdr.c | 354 -----
fs/lockd/xdr.h | 39 +-
fs/locks.c | 118 +-
fs/namei.c | 31 +-
fs/nfs/client.c | 28 +-
fs/nfs/dns_resolve.c | 2 +-
fs/nfs/inode.c | 15 +
fs/nfs/internal.h | 3 +
fs/nfs/namespace.c | 2 +
fs/nfs/nfs3proc.c | 2 +
fs/nfs/nfs3xdr.c | 7 +-
fs/nfs/nfs4proc.c | 10 +-
fs/nfs/proc.c | 3 +
fs/nfs/symlink.c | 3 +
fs/nfsd/blocklayout.c | 37 +-
fs/nfsd/export.c | 784 +++++++++-
fs/nfsd/export.h | 7 +-
fs/nfsd/filecache.c | 46 +
fs/nfsd/filecache.h | 1 +
fs/nfsd/netlink.c | 129 ++
fs/nfsd/netlink.h | 21 +
fs/nfsd/nfs2acl.c | 17 +-
fs/nfsd/nfs3acl.c | 17 +-
fs/nfsd/nfs3proc.c | 39 +-
fs/nfsd/nfs4idmap.c | 4 +-
fs/nfsd/nfs4layouts.c | 43 +-
fs/nfsd/nfs4proc.c | 19 +-
fs/nfsd/nfs4recover.c | 3 +-
fs/nfsd/nfs4state.c | 267 +++-
fs/nfsd/nfs4xdr.c | 102 +-
fs/nfsd/nfsctl.c | 213 ++-
fs/nfsd/nfsd.h | 22 +-
fs/nfsd/state.h | 6 +
fs/nfsd/trace.h | 32 +-
fs/nfsd/vfs.c | 98 +-
fs/nfsd/vfs.h | 3 +
fs/nfsd/xdr3.h | 4 +-
fs/nfsd/xdr4.h | 14 +
fs/notify/fsnotify.c | 5 +
fs/notify/mark.c | 29 +
fs/ntfs3/file.c | 29 +
fs/ntfs3/namei.c | 1 +
fs/ntfs3/ntfs_fs.h | 1 +
fs/posix_acl.c | 4 +-
fs/smb/client/cifsfs.c | 53 +
fs/smb/client/cifsfs.h | 3 +
fs/smb/client/namespace.c | 1 +
fs/smb/server/smb2pdu.c | 30 +-
fs/vboxsf/dir.c | 1 +
fs/vboxsf/file.c | 6 +-
fs/vboxsf/super.c | 7 +
fs/vboxsf/utils.c | 30 +
fs/vboxsf/vfsmod.h | 6 +
fs/xattr.c | 4 +-
fs/xfs/libxfs/xfs_inode_util.c | 2 +
fs/xfs/xfs_export.c | 4 +-
fs/xfs/xfs_ioctl.c | 22 +-
fs/xfs/xfs_pnfs.c | 44 +-
fs/xfs/xfs_pnfs.h | 11 +-
include/linux/exportfs.h | 25 +-
include/linux/exportfs_block.h | 88 ++
include/linux/fileattr.h | 3 +-
include/linux/filelock.h | 66 +-
include/linux/fsnotify.h | 8 +-
include/linux/fsnotify_backend.h | 21 +
include/linux/nfs_fs_sb.h | 2 +-
include/linux/nfs_xdr.h | 2 +
include/linux/sunrpc/cache.h | 15 +-
include/linux/sunrpc/gss_krb5.h | 105 --
include/linux/sunrpc/svc_rdma.h | 7 +-
include/linux/sunrpc/xdr.h | 20 +-
include/linux/sunrpc/xdrgen/nlm3.h | 210 +++
include/trace/events/filelock.h | 38 +-
include/trace/events/fsnotify.h | 51 +
include/trace/misc/fsnotify.h | 35 +
include/uapi/linux/fs.h | 18 +-
include/uapi/linux/nfsd_netlink.h | 156 ++
include/uapi/linux/sunrpc_netlink.h | 84 +
net/sunrpc/.kunitconfig | 29 -
net/sunrpc/Kconfig | 56 +-
net/sunrpc/Makefile | 2 +-
net/sunrpc/auth_gss/Makefile | 4 +-
net/sunrpc/auth_gss/gss_krb5_crypto.c | 1014 +++---------
net/sunrpc/auth_gss/gss_krb5_internal.h | 155 +-
net/sunrpc/auth_gss/gss_krb5_keys.c | 546 -------
net/sunrpc/auth_gss/gss_krb5_mech.c | 441 ++----
net/sunrpc/auth_gss/gss_krb5_seal.c | 47 +-
net/sunrpc/auth_gss/gss_krb5_test.c | 1868 -----------------------
net/sunrpc/auth_gss/gss_krb5_unseal.c | 36 +-
net/sunrpc/auth_gss/gss_krb5_wrap.c | 13 +-
net/sunrpc/auth_gss/svcauth_gss.c | 2 +-
net/sunrpc/cache.c | 127 +-
net/sunrpc/netlink.c | 97 ++
net/sunrpc/netlink.h | 35 +
net/sunrpc/sunrpc_syms.c | 10 +
net/sunrpc/svc.c | 10 +
net/sunrpc/svc_xprt.c | 46 +-
net/sunrpc/svcauth_unix.c | 516 ++++++-
net/sunrpc/svcsock.c | 24 +-
net/sunrpc/xdr.c | 289 +++-
net/sunrpc/xprtrdma/svc_rdma.c | 18 +-
net/sunrpc/xprtrdma/svc_rdma_recvfrom.c | 13 +-
net/sunrpc/xprtrdma/svc_rdma_rw.c | 242 +--
net/sunrpc/xprtrdma/svc_rdma_sendto.c | 97 +-
net/sunrpc/xprtrdma/svc_rdma_transport.c | 33 +-
tools/perf/trace/beauty/include/uapi/linux/fs.h | 7 +
144 files changed, 7338 insertions(+), 6057 deletions(-)
create mode 100644 Documentation/netlink/specs/sunrpc_cache.yaml
create mode 100644 Documentation/sunrpc/xdr/nlm3.x
create mode 100644 fs/lockd/nlm3xdr_gen.c
create mode 100644 fs/lockd/nlm3xdr_gen.h
delete mode 100644 fs/lockd/svcxdr.h
delete mode 100644 fs/lockd/xdr.c
create mode 100644 include/linux/exportfs_block.h
create mode 100644 include/linux/sunrpc/xdrgen/nlm3.h
create mode 100644 include/trace/events/fsnotify.h
create mode 100644 include/trace/misc/fsnotify.h
create mode 100644 include/uapi/linux/sunrpc_netlink.h
delete mode 100644 net/sunrpc/.kunitconfig
delete mode 100644 net/sunrpc/auth_gss/gss_krb5_keys.c
delete mode 100644 net/sunrpc/auth_gss/gss_krb5_test.c
create mode 100644 net/sunrpc/netlink.c
create mode 100644 net/sunrpc/netlink.h
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2026-06-17 13:42 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-06-17 13:42 [GIT PULL] NFSD changes for v7.2 Chuck Lever
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.