Revert "block: consider discard merge last"

This reverts commit 2516c246d0.

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>
This commit is contained in:
Jens Axboe 2025-11-18 08:37:26 -07:00
parent 935a20d1be
commit caebce24f6
1 changed files with 6 additions and 6 deletions

View File

@ -712,10 +712,10 @@ static void blk_account_io_merge_request(struct request *req)
static enum elv_merge blk_try_req_merge(struct request *req, static enum elv_merge blk_try_req_merge(struct request *req,
struct request *next) struct request *next)
{ {
if (blk_rq_pos(req) + blk_rq_sectors(req) == blk_rq_pos(next)) if (blk_discard_mergable(req))
return ELEVATOR_BACK_MERGE;
else if (blk_discard_mergable(req))
return ELEVATOR_DISCARD_MERGE; return ELEVATOR_DISCARD_MERGE;
else if (blk_rq_pos(req) + blk_rq_sectors(req) == blk_rq_pos(next))
return ELEVATOR_BACK_MERGE;
return ELEVATOR_NO_MERGE; return ELEVATOR_NO_MERGE;
} }
@ -903,12 +903,12 @@ bool blk_rq_merge_ok(struct request *rq, struct bio *bio)
enum elv_merge blk_try_merge(struct request *rq, struct bio *bio) enum elv_merge blk_try_merge(struct request *rq, struct bio *bio)
{ {
if (blk_rq_pos(rq) + blk_rq_sectors(rq) == bio->bi_iter.bi_sector) if (blk_discard_mergable(rq))
return ELEVATOR_DISCARD_MERGE;
else if (blk_rq_pos(rq) + blk_rq_sectors(rq) == bio->bi_iter.bi_sector)
return ELEVATOR_BACK_MERGE; return ELEVATOR_BACK_MERGE;
else if (blk_rq_pos(rq) - bio_sectors(bio) == bio->bi_iter.bi_sector) else if (blk_rq_pos(rq) - bio_sectors(bio) == bio->bi_iter.bi_sector)
return ELEVATOR_FRONT_MERGE; return ELEVATOR_FRONT_MERGE;
else if (blk_discard_mergable(rq))
return ELEVATOR_DISCARD_MERGE;
return ELEVATOR_NO_MERGE; return ELEVATOR_NO_MERGE;
} }