]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
netfs: Fix netfs_read_to_pagecache() to pause on subreq failure
authorDavid Howells <dhowells@redhat.com>
Tue, 12 May 2026 12:33:41 +0000 (13:33 +0100)
committerChristian Brauner <brauner@kernel.org>
Tue, 12 May 2026 12:42:29 +0000 (14:42 +0200)
Fix netfs_read_to_pagecache() so that it pauses the generation of new
subrequests if an already-issued subrequest fails.

Fixes: ee4cdf7ba857 ("netfs: Speed up buffered reading")
Closes: https://sashiko.dev/#/patchset/20260425125426.3855807-1-dhowells%40redhat.com
Signed-off-by: David Howells <dhowells@redhat.com>
Link: https://patch.msgid.link/20260512123404.719402-5-dhowells@redhat.com
cc: Paulo Alcantara <pc@manguebit.org>
cc: netfs@lists.linux.dev
cc: linux-fsdevel@vger.kernel.org
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/netfs/buffered_read.c

index 15d73026ff64384743d31fc28fd5c10e0c87bce2..fee0aebf5a3d60a27dff9728547b67688e9505fc 100644 (file)
@@ -300,6 +300,11 @@ static void netfs_read_to_pagecache(struct netfs_io_request *rreq,
                }
 
                netfs_issue_read(rreq, subreq);
+
+               if (test_bit(NETFS_RREQ_PAUSE, &rreq->flags))
+                       netfs_wait_for_paused_read(rreq);
+               if (test_bit(NETFS_RREQ_FAILED, &rreq->flags))
+                       break;
                cond_resched();
        } while (size > 0);