]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
blk-mq: avoid re-initialize request which is failed in direct dispatch
authorShaohua Li <shli@fb.com>
Fri, 8 May 2015 17:51:31 +0000 (10:51 -0700)
committerChuck Anderson <chuck.anderson@oracle.com>
Wed, 13 Sep 2017 04:45:55 +0000 (21:45 -0700)
If we directly issue a request and it fails, we use
blk_mq_merge_queue_io(). But we already assigned bio to a request in
blk_mq_bio_to_request. blk_mq_merge_queue_io shouldn't run
blk_mq_bio_to_request again.

Orabug: 26339553
Suggested-by: Jianchao Wang <jianchao.w.wang@oracle.com>
Signed-off-by: Shaohua Li <shli@fb.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
(cherry picked from commit 239ad215f0d8388cbe6c09a0fab8ad8ff5dba420)
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Reviewed-by: Bhavesh Davda <bhavesh.davda@oracle.com>
Signed-off-by: Ankur Arora <ankur.a.arora@oracle.com>
block/blk-mq.c

index ed0a92268c7627b384c84e00958220b48557e0fd..93246bc6ec75f1d5ad9a95c23c1c9b646ea2cdc9 100644 (file)
@@ -1273,6 +1273,8 @@ static void blk_mq_make_request(struct request_queue *q, struct bio *bio)
                                blk_mq_end_request(rq, rq->errors);
                                goto done;
                        }
+                       blk_mq_insert_request(rq, false, true, true);
+                       return;
                }
        }