|
@@ -1492,7 +1492,7 @@ void __blk_mq_insert_request(struct blk_mq_hw_ctx *hctx, struct request *rq,
|
|
|
* Should only be used carefully, when the caller knows we want to
|
|
|
* bypass a potential IO scheduler on the target device.
|
|
|
*/
|
|
|
-void blk_mq_request_bypass_insert(struct request *rq)
|
|
|
+void blk_mq_request_bypass_insert(struct request *rq, bool run_queue)
|
|
|
{
|
|
|
struct blk_mq_ctx *ctx = rq->mq_ctx;
|
|
|
struct blk_mq_hw_ctx *hctx = blk_mq_map_queue(rq->q, ctx->cpu);
|
|
@@ -1501,7 +1501,8 @@ void blk_mq_request_bypass_insert(struct request *rq)
|
|
|
list_add_tail(&rq->queuelist, &hctx->dispatch);
|
|
|
spin_unlock(&hctx->lock);
|
|
|
|
|
|
- blk_mq_run_hw_queue(hctx, false);
|
|
|
+ if (run_queue)
|
|
|
+ blk_mq_run_hw_queue(hctx, false);
|
|
|
}
|
|
|
|
|
|
void blk_mq_insert_requests(struct blk_mq_hw_ctx *hctx, struct blk_mq_ctx *ctx,
|