]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
netfs: Fix io_uring based write-through
authorDavid Howells <dhowells@redhat.com>
Mon, 20 May 2024 15:12:56 +0000 (16:12 +0100)
committerChristian Brauner <brauner@kernel.org>
Wed, 26 Jun 2024 12:15:26 +0000 (14:15 +0200)
[This was included in v2 of 9b038d004ce95551cb35381c49fe896c5bc11ffe, but
v1 got pushed instead]

Fix netfs_unbuffered_write_iter_locked() to set the total request length in
the netfs_io_request struct rather than leaving it as zero.

Fixes: 288ace2f57c9 ("netfs: New writeback implementation")
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Jeff Layton <jlayton@kernel.org>
cc: Steve French <stfrench@microsoft.com>
cc: Enzo Matsumiya <ematsumiya@suse.de>
cc: Christian Brauner <brauner@kernel.org>
cc: netfs@lists.linux.dev
cc: v9fs@lists.linux.dev
cc: linux-afs@lists.infradead.org
cc: linux-cifs@vger.kernel.org
cc: linux-fsdevel@vger.kernel.org
Link: https://lore.kernel.org/r/20240620173137.610345-2-dhowells@redhat.com
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/netfs/direct_write.c

index e14cd53ac9fd7559337036699fc39a8c49030a39..88f2adfab75e926969a8fae3c4bf65051644f0ed 100644 (file)
@@ -92,8 +92,9 @@ ssize_t netfs_unbuffered_write_iter_locked(struct kiocb *iocb, struct iov_iter *
        __set_bit(NETFS_RREQ_UPLOAD_TO_SERVER, &wreq->flags);
        if (async)
                wreq->iocb = iocb;
+       wreq->len = iov_iter_count(&wreq->io_iter);
        wreq->cleanup = netfs_cleanup_dio_write;
-       ret = netfs_unbuffered_write(wreq, is_sync_kiocb(iocb), iov_iter_count(&wreq->io_iter));
+       ret = netfs_unbuffered_write(wreq, is_sync_kiocb(iocb), wreq->len);
        if (ret < 0) {
                _debug("begin = %zd", ret);
                goto out;