summaryrefslogtreecommitdiff
path: root/block
diff options
context:
space:
mode:
authorJens Axboe <axboe@kernel.dk>2025-11-18 08:37:26 -0700
committerJens Axboe <axboe@kernel.dk>2025-11-18 15:00:12 -0700
commitcaebce24f6a7f8315b1b87505b74066efb592d92 (patch)
tree7a24ed522305fc43c1fb2edb74e0208d05a4b7f8 /block
parent935a20d1bebf6236076785fac3ff81e3931834e9 (diff)
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>
Diffstat (limited to 'block')
-rw-r--r--block/blk-merge.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/block/blk-merge.c b/block/blk-merge.c
index db08bc906091..d3115d7469df 100644
--- a/block/blk-merge.c
+++ b/block/blk-merge.c
@@ -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,
struct request *next)
{
- if (blk_rq_pos(req) + blk_rq_sectors(req) == blk_rq_pos(next))
- return ELEVATOR_BACK_MERGE;
- else if (blk_discard_mergable(req))
+ if (blk_discard_mergable(req))
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;
}
@@ -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)
{
- 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;
else if (blk_rq_pos(rq) - bio_sectors(bio) == bio->bi_iter.bi_sector)
return ELEVATOR_FRONT_MERGE;
- else if (blk_discard_mergable(rq))
- return ELEVATOR_DISCARD_MERGE;
return ELEVATOR_NO_MERGE;
}