summaryrefslogtreecommitdiffstats
path: root/fs/netfs/io.c
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2024-08-23 21:08:13 +0100
committerChristian Brauner <brauner@kernel.org>2024-08-24 16:09:17 +0200
commit950b03d0f664a54389a555d79215348ed413161f (patch)
treebf9c517fea0f8f0a2ce418cc7d60292089dd65de /fs/netfs/io.c
parentcce6bfa6ca0e30af9927b0074c97fe6a92f28092 (diff)
downloadlinux-stable-950b03d0f664a54389a555d79215348ed413161f.tar.gz
linux-stable-950b03d0f664a54389a555d79215348ed413161f.tar.bz2
linux-stable-950b03d0f664a54389a555d79215348ed413161f.zip
netfs: Fix missing iterator reset on retry of short read
Fix netfs_rreq_perform_resubmissions() to reset before retrying a short read, otherwise the wrong part of the output buffer will be used. Fixes: 92b6cc5d1e7c ("netfs: Add iov_iters to (sub)requests to describe various buffers") Signed-off-by: David Howells <dhowells@redhat.com> Link: https://lore.kernel.org/r/20240823200819.532106-6-dhowells@redhat.com cc: Steve French <sfrench@samba.org> cc: Paulo Alcantara <pc@manguebit.com> cc: Jeff Layton <jlayton@kernel.org> cc: linux-cifs@vger.kernel.org cc: netfs@lists.linux.dev cc: linux-fsdevel@vger.kernel.org Signed-off-by: Christian Brauner <brauner@kernel.org>
Diffstat (limited to 'fs/netfs/io.c')
-rw-r--r--fs/netfs/io.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/netfs/io.c b/fs/netfs/io.c
index 5367caf3fa28..4da0a494e860 100644
--- a/fs/netfs/io.c
+++ b/fs/netfs/io.c
@@ -313,6 +313,7 @@ static bool netfs_rreq_perform_resubmissions(struct netfs_io_request *rreq)
netfs_reset_subreq_iter(rreq, subreq);
netfs_read_from_server(rreq, subreq);
} else if (test_bit(NETFS_SREQ_SHORT_IO, &subreq->flags)) {
+ netfs_reset_subreq_iter(rreq, subreq);
netfs_rreq_short_read(rreq, subreq);
}
}