diff options
author | Ming Lei <ming.lei@redhat.com> | 2021-11-02 14:35:00 +0100 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2021-11-03 16:27:57 +0100 |
commit | a1cb65377e707500819b2c2c34064e5ceb32798b (patch) | |
tree | d1a1d8b542c176c5c9c2527873939f6af1c4c2b1 /block | |
parent | block: move RQF_ELV setting into allocators (diff) | |
download | linux-a1cb65377e707500819b2c2c34064e5ceb32798b.tar.xz linux-a1cb65377e707500819b2c2c34064e5ceb32798b.zip |
blk-mq: only try to run plug merge if request has same queue with incoming bio
It is obvious that io merge can't be done between two different queues, so
just try to run io merge in case of same queue.
Signed-off-by: Ming Lei <ming.lei@redhat.com>
Link: https://lore.kernel.org/r/20211102133502.3619184-2-ming.lei@redhat.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block')
-rw-r--r-- | block/blk-merge.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/block/blk-merge.c b/block/blk-merge.c index df69f4bb7717..893c1a60b701 100644 --- a/block/blk-merge.c +++ b/block/blk-merge.c @@ -1101,9 +1101,11 @@ bool blk_attempt_plug_merge(struct request_queue *q, struct bio *bio, * the same queue, there should be only one such rq in a queue */ *same_queue_rq = true; + + if (blk_attempt_bio_merge(q, rq, bio, nr_segs, false) == + BIO_MERGE_OK) + return true; } - if (blk_attempt_bio_merge(q, rq, bio, nr_segs, false) == BIO_MERGE_OK) - return true; return false; } |