[GIT PULL] Please pull NFS client fixes for Linux 7.3

From: Trond Myklebust

Date: Wed Aug 26 2026 - 16:57:21 EST


Hi Linus,

The following changes since commit db2ddb87143519e20a95aa36c60b36107b736a58:

Linux 7.2-rc7 (2026-08-09 14:54:50 -0700)

are available in the Git repository at:

git://git.linux-nfs.org/projects/trondmy/linux-nfs.git tags/nfs-for-7.3-1

for you to fetch changes up to ee5a386cfe60f3f8286de16a9db8e1a08f0bc124:

NFSv4.1: fix layout segment leak on the pnfs_layout_process() forget path (2026-08-20 15:18:20 -0700)

Thanks!
Trond
----------------------------------------------------------------
NFS client updates for Linux 7.3

Highlights include:

Stable fixes:
- SunRPC: Use-after-free fixes for the sunrpc client code
- NFSv4: Delegation hash table leak
- lockd: NULL dereference on lockowner allocation failure
- SunRPC: Fix a handshake completion race in the TLS code
- NFSv4.1/pNFS: Fix an error sign checking issue when deciding whether
the layout is still in use, or can be returned.
- NFSv4.1: Fix a layout segment leak in pnfs_layout_process()

Other bugfixes:
- SunRPC: Fix a missing NULL check in the rpcbind client
- SunRPC: annotate shared socket callbacks with READ_ONCE/WRITE_ONCE
- NFSv4: nfs_inode_set_delegation() error paths should return the delegation
- NFSv4: Use clear_and_wake_up_bit() in nfs_clear_invalid_mapping() and
the pNFS code.
- NFSv4: Fix the nfs4_alloc_client() error paths to free the IDR
allocation
- NFS: fix folio dereference before NULL check in nfs_inode_remove_request()
- NFS: Fix delayed delegation return
- NFSv4: Fix another state manager race with umount
- pNFS/blocklayout: Fix device leaks on parse failure
- pNFS: Avoid cancelling in-flight I/O during a layout recall if the
server doesn't require it
- NFSv4/flexfiles: report cancelled I/O as a layout error
- NFSv4/flexfiles: fix NULL dereference for NFSv4.0 data servers
- NFSv4: Fix incorrect argument passed to nfs4_delete_lease()
- NFSv3: Fix several symlink issues resulting from nfs_atomic_open_v23()
- NFSv4.1: Fix an uninitialised variable issue in the callback code
- NFSv4.2: fix LAYOUTSTATS send buffer exhaustion

Features and cleanups:
- NFSv4.2: Allow the server to specify that file data may not be cached
- NFS/localio: optimise I/O submission when when not doing memory reclaim
- NFS/localio: Remove duplicate wait code in nfs_local_commit
- NFSv4/flexfiles: support loosely coupled NFSv4.x data servers
- NFSv4/pnfs: key the data server cache on the NFS version

----------------------------------------------------------------
Arnaud Bonnet (2):
nfs: replace atomic bitops sequence with clear_and_wake_up_bit helper
nfs: refactor pNFS functions using clear_and_wake_up_bit

Benjamin Coddington (3):
pNFS: report clora_changed in the cb_layoutrecall_file tracepoint
pNFS: honor clora_changed when recalling a layout
NFSv4/flexfiles: report cancelled I/O as a layout error

Chuck Lever (1):
NFS: Return a delegation the client fails to record

Guangshuo Li (1):
NFS: Fix delayed delegation return list handling

Jeuk Kim (2):
NFSv4/flexfiles: fix NULL dereference for NFSv4.0 data servers
NFSv4/flexfiles: support loosely coupled data servers

Jia Zhu (1):
NFSv4: pin the superblock for active state owners

Jiangshan Yi (1):
NFS: fix folio dereference before NULL check in nfs_inode_remove_request()

Junrui Luo (3):
NFSv4.2: fix LAYOUTSTATS send buffer exhaustion
NFSv4/pnfs: key the data server cache on the NFS version
NFSv4.1: fix layout segment leak on the pnfs_layout_process() forget path

Jérémy Jean (2):
SUNRPC: wait for in-flight client TLS handshake callback
NFSv4.1: zero referring call lists before decoding

Luxiao Xu (1):
sunrpc: fix use-after-free in __rpc_clnt_handle_event and __rpc_clnt_remove_pipedir

Michael Nemanov (1):
nfs: fix ENXIO on O_CREAT open of existing symlink over NFSv3

Mike Snitzer (5):
nfs4.2: request UNCACHEABLE_FILE_DATA only for regular files
nfs4.2: open UNCACHEABLE_FILE_DATA files with O_DIRECT
NFS/localio: issue IO inline when not in a memory-reclaim context
NFS/localio: remove dead FLUSH_SYNC handling from nfs_local_commit
NFS/localio: issue commit inline when not in a memory-reclaim context

Nate Prodromou (1):
NFS: fix delegation_hash_table leak when nfs4_server_common_setup() fails

Runyu Xiao (1):
sunrpc: xprtsock: annotate shared socket callbacks with READ_ONCE/WRITE_ONCE

Ruoyu Wang (1):
NFSv4: remove callback IDR entry on client allocation failure

Shuangpeng Bai (1):
lockd: fix NULL dereference on lockowner allocation failure

Tim Menninger (1):
pNFS: Fix EBUSY check in pnfs_layout_need_return

Tom Haynes (1):
nfs4.2: add UNCACHEABLE_FILE_DATA attribute support

Weiming Shi (1):
SUNRPC: check rpc_sockaddr2uaddr() return value in rpcb_register_inet4/6

ZhangGuoDong (2):
pnfs/blocklayout: Fix device leaks on parse failure
NFS: Verify symlink inode before caching target

Zhansong Gao (1):
NFSv4: Fix incorrect argument passed to nfs4_delete_lease() in nfs4_add_lease()

fs/lockd/clntproc.c | 3 ++
fs/nfs/blocklayout/dev.c | 21 +++++++---
fs/nfs/callback_proc.c | 5 ++-
fs/nfs/callback_xdr.c | 2 +-
fs/nfs/client.c | 14 ++++++-
fs/nfs/delegation.c | 20 ++++++---
fs/nfs/dir.c | 17 ++++++++
fs/nfs/filelayout/filelayoutdev.c | 5 ++-
fs/nfs/flexfilelayout/flexfilelayout.c | 26 +++++++++++-
fs/nfs/flexfilelayout/flexfilelayoutdev.c | 6 ++-
fs/nfs/inode.c | 28 ++++++++++---
fs/nfs/internal.h | 8 ++--
fs/nfs/localio.c | 56 +++++++++++++++++++------
fs/nfs/nfs4client.c | 23 +++++++----
fs/nfs/nfs4file.c | 2 +
fs/nfs/nfs4proc.c | 69 ++++++++++++++++++++++++++++---
fs/nfs/nfs4session.c | 21 ++++++----
fs/nfs/nfs4session.h | 3 +-
fs/nfs/nfs4state.c | 40 ++++++++++++++----
fs/nfs/nfs4trace.h | 58 +++++++++++++++++++++++++-
fs/nfs/nfs4xdr.c | 35 +++++++++++++++-
fs/nfs/nfstrace.h | 3 +-
fs/nfs/pnfs.c | 60 +++++++++++----------------
fs/nfs/pnfs.h | 8 ++--
fs/nfs/pnfs_nfs.c | 28 ++++++++-----
fs/nfs/write.c | 13 +++---
include/linux/nfs4.h | 9 ++++
include/linux/nfs_fs.h | 4 ++
include/linux/nfs_xdr.h | 10 ++++-
include/linux/workqueue.h | 1 +
kernel/workqueue.c | 24 +++++++++++
net/sunrpc/clnt.c | 22 +++++++---
net/sunrpc/rpcb_clnt.c | 4 ++
net/sunrpc/xprtsock.c | 32 +++++++++-----
34 files changed, 534 insertions(+), 146 deletions(-)

--
Trond Myklebust
Linux NFS client maintainer, Hammerspace
trondmy@xxxxxxxxxx, trond.myklebust@xxxxxxxxxxxxxxx