summaryrefslogtreecommitdiff
path: root/fs/netfs/io.c
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2021-06-17 13:09:21 +0100
committerDavid Howells <dhowells@redhat.com>2023-12-28 09:45:22 +0000
commitc38f4e96e605f17990e871214e6ea1496bc4e65f (patch)
treeef067dcae6e6748d547e3ef66615ca7554fee474 /fs/netfs/io.c
parent0e0f2dfe880fb19e4b15a7ca468623eb0b4ba586 (diff)
netfs: Provide func to copy data to pagecache for buffered write
Provide a netfs write helper, netfs_perform_write() to buffer data to be written in the pagecache and mark the modified folios dirty. It will perform "streaming writes" for folios that aren't currently resident, if possible, storing data in partially modified folios that are marked dirty, but not uptodate. It will also tag pages as belonging to fs-specific write groups if so directed by the filesystem. This is derived from generic_perform_write(), but doesn't use ->write_begin() and ->write_end(), having that logic rolled in instead. Signed-off-by: David Howells <dhowells@redhat.com> cc: Jeff Layton <jlayton@kernel.org> cc: linux-cachefs@redhat.com cc: linux-fsdevel@vger.kernel.org cc: linux-mm@kvack.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 e83ef5835d25..774aef6ea4cb 100644
--- a/fs/netfs/io.c
+++ b/fs/netfs/io.c
@@ -125,6 +125,7 @@ static void netfs_rreq_unmark_after_write(struct netfs_io_request *rreq,
if (have_unlocked && folio_index(folio) <= unlocked)
continue;
unlocked = folio_index(folio);
+ trace_netfs_folio(folio, netfs_folio_trace_end_copy);
folio_end_fscache(folio);
have_unlocked = true;
}