Skip to content

Commit 310d9d5

Browse files
author
Al Viro
committed
expand those iov_iter_advance()...
Signed-off-by: Al Viro <[email protected]>
1 parent 746de1f commit 310d9d5

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

lib/iov_iter.c

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1378,7 +1378,8 @@ static ssize_t iter_xarray_get_pages(struct iov_iter *i,
13781378
return 0;
13791379

13801380
maxsize = min_t(size_t, nr * PAGE_SIZE - offset, maxsize);
1381-
iov_iter_advance(i, maxsize);
1381+
i->iov_offset += maxsize;
1382+
i->count -= maxsize;
13821383
return maxsize;
13831384
}
13841385

@@ -1467,7 +1468,13 @@ static ssize_t __iov_iter_get_pages_alloc(struct iov_iter *i,
14671468
for (int k = 0; k < n; k++)
14681469
get_page(p[k] = page + k);
14691470
maxsize = min_t(size_t, maxsize, n * PAGE_SIZE - *start);
1470-
iov_iter_advance(i, maxsize);
1471+
i->count -= maxsize;
1472+
i->iov_offset += maxsize;
1473+
if (i->iov_offset == i->bvec->bv_len) {
1474+
i->iov_offset = 0;
1475+
i->bvec++;
1476+
i->nr_segs--;
1477+
}
14711478
return maxsize;
14721479
}
14731480
if (iov_iter_is_pipe(i))

0 commit comments

Comments
 (0)