diff --git a/lib/iov_iter.c b/lib/iov_iter.c index 8c6cdc1cf832be804b470c6bb07287e716df8dae..c78129e709f20d02be78ce858ebde5c9b02cf305 100644 --- a/lib/iov_iter.c +++ b/lib/iov_iter.c @@ -1386,15 +1386,7 @@ static ssize_t iter_xarray_get_pages(struct iov_iter *i, offset = pos & ~PAGE_MASK; *_start_offset = offset; - count = 1; - if (size > PAGE_SIZE - offset) { - size -= PAGE_SIZE - offset; - count += size >> PAGE_SHIFT; - size &= ~PAGE_MASK; - if (size) - count++; - } - + count = DIV_ROUND_UP(size + offset, PAGE_SIZE); if (count > maxpages) count = maxpages;