aboutsummaryrefslogtreecommitdiff
path: root/fs/netfs/io.c
diff options
context:
space:
mode:
authorChristian Brauner <brauner@kernel.org>2024-05-02 11:23:31 +0200
committerChristian Brauner <brauner@kernel.org>2024-05-02 11:23:31 +0200
commite2bc9f6cfbd62c72a93a70068daab8886bec32ce (patch)
tree571879d424522169b3f86f3cbcd92bb55b6841d2 /fs/netfs/io.c
parent3931e678fb55adbe0882304f636eca14014a65bd (diff)
parent7c1ac89480e8d5d34d38a868642216c8f05ee602 (diff)
Merge branch 'cifs-netfs' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs
Pull cifs netfs updates from David Howells: This ports cifs over to use the netfs library. * 'cifs-netfs' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs: cifs: Enable large folio support cifs: Remove some code that's no longer used, part 3 cifs: Remove some code that's no longer used, part 2 cifs: Remove some code that's no longer used, part 1 cifs: Cut over to using netfslib cifs: Implement netfslib hooks cifs: Make add_credits_and_wake_if() clear deducted credits cifs: Add mempools for cifs_io_request and cifs_io_subrequest structs cifs: Set zero_point in the copy_file_range() and remap_file_range() cifs: Move cifs_loose_read_iter() and cifs_file_write_iter() to file.c cifs: Replace the writedata replay bool with a netfs sreq flag cifs: Make wait_mtu_credits take size_t args cifs: Use more fields from netfs_io_subrequest cifs: Replace cifs_writedata with a wrapper around netfs_io_subrequest cifs: Replace cifs_readdata with a wrapper around netfs_io_subrequest cifs: Use alternative invalidation to using launder_folio Signed-off-by: Christian Brauner <brauner@kernel.org>
Diffstat (limited to 'fs/netfs/io.c')
-rw-r--r--fs/netfs/io.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/fs/netfs/io.c b/fs/netfs/io.c
index 6cfecfcd02e1..c93851b98368 100644
--- a/fs/netfs/io.c
+++ b/fs/netfs/io.c
@@ -213,8 +213,13 @@ static void netfs_rreq_assess_dio(struct netfs_io_request *rreq)
unsigned int i;
size_t transferred = 0;
- for (i = 0; i < rreq->direct_bv_count; i++)
+ for (i = 0; i < rreq->direct_bv_count; i++) {
flush_dcache_page(rreq->direct_bv[i].bv_page);
+ // TODO: cifs marks pages in the destination buffer
+ // dirty under some circumstances after a read. Do we
+ // need to do that too?
+ set_page_dirty(rreq->direct_bv[i].bv_page);
+ }
list_for_each_entry(subreq, &rreq->subrequests, rreq_link) {
if (subreq->error || subreq->transferred == 0)