Help the CPU branch predictor in case of a cache hit by handling the cache hit scenario first. Signed-off-by: Bart Van Assche <bvanassche@xxxxxxx> --- block/blk-mq.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/block/blk-mq.c b/block/blk-mq.c index ece567b1b6be..56a6b5bef39f 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c @@ -3123,12 +3123,12 @@ void blk_mq_submit_bio(struct bio *bio) goto queue_exit; new_request: - if (!rq) { + if (rq) { + blk_mq_use_cached_rq(rq, plug, bio); + } else { rq = blk_mq_get_new_requests(q, plug, bio, nr_segs); if (unlikely(!rq)) goto queue_exit; - } else { - blk_mq_use_cached_rq(rq, plug, bio); } trace_block_getrq(bio);