mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-04-05 02:26:24 -04:00
NFS/localio: Deal with page bases that are > PAGE_SIZE
When resending requests, etc, the page base can quickly grow larger than
the page size.
Fixes: 091bdcfcec ("nfs/localio: refactor iocb and iov_iter_bvec initialization")
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Reviewed-by: Mike Snitzer <snitzer@kernel.org>
This commit is contained in:
@@ -461,6 +461,8 @@ nfs_local_iters_init(struct nfs_local_kiocb *iocb, int rw)
|
||||
v = 0;
|
||||
total = hdr->args.count;
|
||||
base = hdr->args.pgbase;
|
||||
pagevec += base >> PAGE_SHIFT;
|
||||
base &= ~PAGE_MASK;
|
||||
while (total && v < hdr->page_array.npages) {
|
||||
len = min_t(size_t, total, PAGE_SIZE - base);
|
||||
bvec_set_page(&iocb->bvec[v], *pagevec, len, base);
|
||||
|
||||
Reference in New Issue
Block a user