Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Revert "block: consider discard merge last"

This reverts commit 2516c246d01c23a5f5310e9ac78d9f8aad9b1d0e.

Suspected issues with discard merging post this patch, hence revert
it for now.

Link: https://lore.kernel.org/linux-block/26acdfdf-de13-430b-8c73-f890c7689a84@kernel.dk/
Signed-off-by: Jens Axboe <axboe@kernel.dk>

+6 -6
+6 -6
block/blk-merge.c
··· 712 712 static enum elv_merge blk_try_req_merge(struct request *req, 713 713 struct request *next) 714 714 { 715 - if (blk_rq_pos(req) + blk_rq_sectors(req) == blk_rq_pos(next)) 716 - return ELEVATOR_BACK_MERGE; 717 - else if (blk_discard_mergable(req)) 715 + if (blk_discard_mergable(req)) 718 716 return ELEVATOR_DISCARD_MERGE; 717 + else if (blk_rq_pos(req) + blk_rq_sectors(req) == blk_rq_pos(next)) 718 + return ELEVATOR_BACK_MERGE; 719 719 720 720 return ELEVATOR_NO_MERGE; 721 721 } ··· 903 903 904 904 enum elv_merge blk_try_merge(struct request *rq, struct bio *bio) 905 905 { 906 - if (blk_rq_pos(rq) + blk_rq_sectors(rq) == bio->bi_iter.bi_sector) 906 + if (blk_discard_mergable(rq)) 907 + return ELEVATOR_DISCARD_MERGE; 908 + else if (blk_rq_pos(rq) + blk_rq_sectors(rq) == bio->bi_iter.bi_sector) 907 909 return ELEVATOR_BACK_MERGE; 908 910 else if (blk_rq_pos(rq) - bio_sectors(bio) == bio->bi_iter.bi_sector) 909 911 return ELEVATOR_FRONT_MERGE; 910 - else if (blk_discard_mergable(rq)) 911 - return ELEVATOR_DISCARD_MERGE; 912 912 return ELEVATOR_NO_MERGE; 913 913 } 914 914