aboutsummaryrefslogtreecommitdiffstats
path: root/block/blk-mq.c
diff options
context:
space:
mode:
Diffstat (limited to 'block/blk-mq.c')
-rw-r--r--block/blk-mq.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/block/blk-mq.c b/block/blk-mq.c
index 92648d8d6a4a..3a39184e82e5 100644
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@ -2067,15 +2067,16 @@ void blk_mq_free_queue(struct request_queue *q)
2067{ 2067{
2068 struct blk_mq_tag_set *set = q->tag_set; 2068 struct blk_mq_tag_set *set = q->tag_set;
2069 2069
2070 mutex_lock(&all_q_mutex);
2071 list_del_init(&q->all_q_node);
2072 mutex_unlock(&all_q_mutex);
2073
2070 blk_mq_del_queue_tag_set(q); 2074 blk_mq_del_queue_tag_set(q);
2071 2075
2072 blk_mq_exit_hw_queues(q, set, set->nr_hw_queues); 2076 blk_mq_exit_hw_queues(q, set, set->nr_hw_queues);
2073 blk_mq_free_hw_queues(q, set); 2077 blk_mq_free_hw_queues(q, set);
2074 2078
2075 percpu_ref_exit(&q->mq_usage_counter); 2079 percpu_ref_exit(&q->mq_usage_counter);
2076 mutex_lock(&all_q_mutex);
2077 list_del_init(&q->all_q_node);
2078 mutex_unlock(&all_q_mutex);
2079} 2080}
2080 2081
2081/* Basically redo blk_mq_init_queue with queue frozen */ 2082/* Basically redo blk_mq_init_queue with queue frozen */