Revert "block: Split bios on chunk boundaries"
authorJens Axboe <axboe@fb.com>
Fri, 8 Jan 2016 16:00:29 +0000 (09:00 -0700)
committerJens Axboe <axboe@fb.com>
Fri, 8 Jan 2016 16:00:29 +0000 (09:00 -0700)
This reverts commit d3805611130af9b911e908af9f67a3f64f4f0914.

If we end up splitting on the first segment, we don't adjust
the sector count. That results in hitting a BUG() with attempting
to split 0 sectors.

As this is just a performance issue and not a regression since
4.3 release, let's just rever this change. That gives us more
time to test a real fix for 4.5, which would be marked for
stable anyway.

block/blk-merge.c

index e73846a3d08a655a63a763d35732106b64ee4797..e01405a3e8b3f51ce0424a844fadb3304bda5e44 100644 (file)
@@ -81,7 +81,7 @@ static struct bio *blk_bio_segment_split(struct request_queue *q,
        struct bio *new = NULL;
 
        bio_for_each_segment(bv, bio, iter) {
-               if (sectors + (bv.bv_len >> 9) > blk_max_size_offset(q, bio->bi_iter.bi_sector))
+               if (sectors + (bv.bv_len >> 9) > queue_max_sectors(q))
                        goto split;
 
                /*