]> 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>
Fri, 21 Feb 2025 12:49:50 +0000 (13:49 +0100)
commitf8e05df84bb001abc02dcef6f6bc3378a1da3539
tree96fe3aa2f131c1a4cf0e2045b807a31eeb7303c2
parent805bf505215235a4d826a2c47006e5cc1fec8f43
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