Skip to content

Commit 6470e0b

Browse files
dhowellsbrauner
authored andcommitted
netfs: Fix early issue of write op on partial write to folio tail
During the writeback procedure, at the end of netfs_write_folio(), pending write operations are flushed if the amount of write-streaming data stored in a page is less than the size of the folio because if we haven't modified a folio to the end, it cannot be contiguous with the following folio... except if the dirty region of the folio is right at the end of the folio space. Fix the test to take the offset into the folio into account as well, such that if the dirty region runs right up to the end of the folio, we leave the flushing for later. Fixes: 288ace2 ("netfs: New writeback implementation") Signed-off-by: David Howells <dhowells@redhat.com> cc: Jeff Layton <jlayton@kernel.org> cc: Eric Van Hensbergen <ericvh@kernel.org> cc: Latchesar Ionkov <lucho@ionkov.net> cc: Dominique Martinet <asmadeus@codewreck.org> cc: Christian Schoenebeck <linux_oss@crudebyte.com> cc: Marc Dionne <marc.dionne@auristor.com> cc: Steve French <sfrench@samba.org> cc: Paulo Alcantara <pc@manguebit.com> (DFS, global name space) cc: v9fs@lists.linux.dev cc: linux-afs@lists.infradead.org cc: linux-cifs@vger.kernel.org cc: netfs@lists.linux.dev cc: linux-fsdevel@vger.kernel.org Link: https://lore.kernel.org/r/20240620173137.610345-4-dhowells@redhat.com Signed-off-by: Christian Brauner <brauner@kernel.org>
1 parent d98b7d7 commit 6470e0b

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

fs/netfs/write_issue.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -483,7 +483,7 @@ static int netfs_write_folio(struct netfs_io_request *wreq,
483483
if (!debug)
484484
kdebug("R=%x: No submit", wreq->debug_id);
485485

486-
if (flen < fsize)
486+
if (foff + flen < fsize)
487487
for (int s = 0; s < NR_IO_STREAMS; s++)
488488
netfs_issue_write(wreq, &wreq->io_streams[s]);
489489

0 commit comments

Comments
 (0)