|
@@ -2067,15 +2067,16 @@ void blk_mq_free_queue(struct request_queue *q)
|
|
|
{
|
|
|
struct blk_mq_tag_set *set = q->tag_set;
|
|
|
|
|
|
+ mutex_lock(&all_q_mutex);
|
|
|
+ list_del_init(&q->all_q_node);
|
|
|
+ mutex_unlock(&all_q_mutex);
|
|
|
+
|
|
|
blk_mq_del_queue_tag_set(q);
|
|
|
|
|
|
blk_mq_exit_hw_queues(q, set, set->nr_hw_queues);
|
|
|
blk_mq_free_hw_queues(q, set);
|
|
|
|
|
|
percpu_ref_exit(&q->mq_usage_counter);
|
|
|
- mutex_lock(&all_q_mutex);
|
|
|
- list_del_init(&q->all_q_node);
|
|
|
- mutex_unlock(&all_q_mutex);
|
|
|
}
|
|
|
|
|
|
/* Basically redo blk_mq_init_queue with queue frozen */
|