diff options
Diffstat (limited to 'fs')
-rw-r--r-- | fs/bio.c | 9 |
1 files changed, 6 insertions, 3 deletions
@@ -1487,9 +1487,12 @@ struct bio_pair *bio_split(struct bio *bi, int first_sectors) | |||
1487 | 1487 | ||
1488 | bp->bv1 = bi->bi_io_vec[0]; | 1488 | bp->bv1 = bi->bi_io_vec[0]; |
1489 | bp->bv2 = bi->bi_io_vec[0]; | 1489 | bp->bv2 = bi->bi_io_vec[0]; |
1490 | bp->bv2.bv_offset += first_sectors << 9; | 1490 | |
1491 | bp->bv2.bv_len -= first_sectors << 9; | 1491 | if (bio_is_rw(bi)) { |
1492 | bp->bv1.bv_len = first_sectors << 9; | 1492 | bp->bv2.bv_offset += first_sectors << 9; |
1493 | bp->bv2.bv_len -= first_sectors << 9; | ||
1494 | bp->bv1.bv_len = first_sectors << 9; | ||
1495 | } | ||
1493 | 1496 | ||
1494 | bp->bio1.bi_io_vec = &bp->bv1; | 1497 | bp->bio1.bi_io_vec = &bp->bv1; |
1495 | bp->bio2.bi_io_vec = &bp->bv2; | 1498 | bp->bio2.bi_io_vec = &bp->bv2; |