diff options
-rw-r--r-- | drivers/md/linear.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/md/linear.c b/drivers/md/linear.c index 161e9aa8729..b1941b887f4 100644 --- a/drivers/md/linear.c +++ b/drivers/md/linear.c @@ -269,9 +269,8 @@ static int linear_make_request (request_queue_t *q, struct bio *bio) * split it. */ struct bio_pair *bp; - bp = bio_split(bio, bio_split_pool, - (bio->bi_sector + (bio->bi_size >> 9) - - (tmp_dev->offset + tmp_dev->size))<<1); + bp = bio_split(bio, bio_split_pool, + ((tmp_dev->offset + tmp_dev->size)<<1) - bio->bi_sector); if (linear_make_request(q, &bp->bio1)) generic_make_request(&bp->bio1); if (linear_make_request(q, &bp->bio2)) |