]> git.ipfire.org Git - thirdparty/linux.git/commit
NFS/localio: prevent direct reclaim recursion into NFS via nfs_writepages
authorMike Snitzer <snitzer@hammerspace.com>
Wed, 7 Jan 2026 16:08:55 +0000 (11:08 -0500)
committerAnna Schumaker <anna.schumaker@oracle.com>
Thu, 22 Jan 2026 15:51:10 +0000 (10:51 -0500)
commit67435d2d8a33a75f9647724952cb1b18279d2e95
tree08ff6394b4e923af46ef8f359a76a40c269a4ed7
parent5fcd95831d9751435e3617e870d706cb9070b55a
NFS/localio: prevent direct reclaim recursion into NFS via nfs_writepages

LOCALIO is an NFS loopback mount optimization that avoids using the
network for READ, WRITE and COMMIT if the NFS client and server are
determined to be on the same system. But because LOCALIO is still
fundamentally "just NFS loopback mount" it is susceptible to recursion
deadlock via direct reclaim, e.g.: NFS LOCALIO down to XFS and then
back into NFS via nfs_writepages.

Fix LOCALIO's potential for direct reclaim deadlock by ensuring that
all its page cache allocations are done from GFP_NOFS context.

Thanks to Ben Coddington for pointing out commit ad22c7a043c2 ("xfs:
prevent stack overflows from page cache allocation").

Reported-by: John Cagle <john.cagle@hammerspace.com>
Tested-by: Allen Lu <allen.lu@hammerspace.com>
Suggested-by: Benjamin Coddington <bcodding@hammerspace.com>
Fixes: 70ba381e1a43 ("nfs: add LOCALIO support")
Signed-off-by: Mike Snitzer <snitzer@hammerspace.com>
Signed-off-by: Anna Schumaker <anna.schumaker@oracle.com>
fs/nfs/localio.c