]> 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>
Mon, 17 Feb 2025 09:05:39 +0000 (10:05 +0100)
commit3996a41b1eeb15bf319d580d8b1b2fb77c577013
treea17f7c3bc333991e3f3a7b6613b06e7cd7b41672
parent7dc5a84ba5497976124dc51b51f3b3d5f7499160
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