blk-mq: add flag for drivers wanting blocking ->queue_rq()
[cascardo/linux.git] / block / blk-mq.c
index 80d4838..e9ebe98 100644 (file)
@@ -908,7 +908,7 @@ void blk_mq_run_hw_queue(struct blk_mq_hw_ctx *hctx, bool async)
            !blk_mq_hw_queue_mapped(hctx)))
                return;
 
-       if (!async) {
+       if (!async && !(hctx->flags & BLK_MQ_F_BLOCKING)) {
                int cpu = get_cpu();
                if (cpumask_test_cpu(cpu, hctx->cpumask)) {
                        __blk_mq_run_hw_queue(hctx);