File tree Expand file tree Collapse file tree 1 file changed +9
-2
lines changed Expand file tree Collapse file tree 1 file changed +9
-2
lines changed Original file line number Diff line number Diff line change @@ -1378,7 +1378,8 @@ static ssize_t iter_xarray_get_pages(struct iov_iter *i,
1378
1378
return 0 ;
1379
1379
1380
1380
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 ;
1382
1383
return maxsize ;
1383
1384
}
1384
1385
@@ -1467,7 +1468,13 @@ static ssize_t __iov_iter_get_pages_alloc(struct iov_iter *i,
1467
1468
for (int k = 0 ; k < n ; k ++ )
1468
1469
get_page (p [k ] = page + k );
1469
1470
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
+ }
1471
1478
return maxsize ;
1472
1479
}
1473
1480
if (iov_iter_is_pipe (i ))
You can’t perform that action at this time.
0 commit comments