summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Wilcox (Oracle) <willy@infradead.org>2025-03-05 20:47:32 +0000
committerChristian Brauner <brauner@kernel.org>2025-03-06 09:26:07 +0100
commit377afd97cf1801cef404fecf39167d4c067dd861 (patch)
tree46668c9e78494da427c47ce9e290e833ecb4bd80
parentf9ec21357f52254f300ab01199da76464103e821 (diff)
orangefs: Simplify bvec setup in orangefs_writepages_work()
This produces a bvec which is slightly different as the last page is added in its entirety rather than only the portion which is being written back. However we don't use this information anywhere; the iovec has its own length parameter. Signed-off-by: "Matthew Wilcox (Oracle)" <willy@infradead.org> Link: https://lore.kernel.org/r/20250305204734.1475264-9-willy@infradead.org Tested-by: Mike Marshall <hubcap@omnibond.com> Signed-off-by: Christian Brauner <brauner@kernel.org>
-rw-r--r--fs/orangefs/inode.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/fs/orangefs/inode.c b/fs/orangefs/inode.c
index 927c2829976c..7b5272931e3b 100644
--- a/fs/orangefs/inode.c
+++ b/fs/orangefs/inode.c
@@ -83,18 +83,18 @@ static int orangefs_writepages_work(struct orangefs_writepages *ow,
struct orangefs_write_range *wrp, wr;
struct iov_iter iter;
ssize_t ret;
+ size_t start;
loff_t len, off;
int i;
len = i_size_read(inode);
+ start = offset_in_page(ow->off);
for (i = 0; i < ow->npages; i++) {
set_page_writeback(ow->pages[i]);
- bvec_set_page(&ow->bv[i], ow->pages[i],
- min(page_offset(ow->pages[i]) + PAGE_SIZE,
- ow->off + ow->len) -
- max(ow->off, page_offset(ow->pages[i])),
- i == 0 ? ow->off - page_offset(ow->pages[i]) : 0);
+ bvec_set_page(&ow->bv[i], ow->pages[i], PAGE_SIZE - start,
+ start);
+ start = 0;
}
iov_iter_bvec(&iter, ITER_SOURCE, ow->bv, ow->npages, ow->len);