diff options
-rw-r--r-- | fs/orangefs/inode.c | 10 |
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); |