diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c index 2630f64bed19..efb97ec37eee 100644 --- a/block/blk-cgroup.c +++ b/block/blk-cgroup.c @@ -1265,9 +1265,10 @@ pd_prealloc: spin_unlock_irq(q->queue_lock); out_bypass_end: - if (q->mq_ops) + if (q->mq_ops) { blk_mq_unfreeze_queue(q); - else + blk_mq_start_stopped_hw_queues(q, true); + } else blk_queue_bypass_end(q); if (pd_prealloc) pol->pd_free_fn(pd_prealloc); @@ -1317,9 +1318,10 @@ void blkcg_deactivate_policy(struct request_queue *q, spin_unlock_irq(q->queue_lock); - if (q->mq_ops) + if (q->mq_ops) { blk_mq_unfreeze_queue(q); - else + blk_mq_start_stopped_hw_queues(q, true); + } else blk_queue_bypass_end(q); } EXPORT_SYMBOL_GPL(blkcg_deactivate_policy);