]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
pnfs/flexfiles: retry getting layout segment for reads
authorMike Snitzer <snitzer@kernel.org>
Fri, 17 Jan 2025 01:05:39 +0000 (20:05 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 13 Mar 2025 11:50:32 +0000 (12:50 +0100)
commitc00e53672d7dda35c5a62dd6b0b21c95d1ca99b2
tree7007982b8be2f9549e2969179c3503cd1ce331c3
parentf65ce06387f8c1fb54bd59e18a8428248ec68eaf
pnfs/flexfiles: retry getting layout segment for reads

commit eb3fabde15bccdf34f1c9b35a83aa4c0dacbb4ca upstream.

If ff_layout_pg_get_read()'s attempt to get a layout segment results
in -EAGAIN have ff_layout_pg_init_read() retry it after sleeping.

If "softerr" mount is used, use 'io_maxretrans' to limit the number of
attempts to get a layout segment.

This fixes a long-standing issue of O_DIRECT reads failing with
-EAGAIN (11) when using flexfiles Client Side Mirroring (CSM).

Cc: stable@vger.kernel.org
Signed-off-by: Mike Snitzer <snitzer@kernel.org>
Signed-off-by: Anna Schumaker <anna.schumaker@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
fs/nfs/flexfilelayout/flexfilelayout.c