aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
Diffstat (limited to 'fs')
-rw-r--r--fs/bio.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/fs/bio.c b/fs/bio.c
index 13e956779e1..f855e0e1869 100644
--- a/fs/bio.c
+++ b/fs/bio.c
@@ -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;