blk-mq: fix WARNING "percpu_ref_kill() called more than once!"
authorMing Lei <ming.lei@canonical.com>
Fri, 15 Aug 2014 15:16:32 +0000 (23:16 +0800)
committerJens Axboe <axboe@fb.com>
Fri, 15 Aug 2014 18:38:20 +0000 (12:38 -0600)
Before doing queue release, the queue has been freezed already
by blk_cleanup_queue(), so needn't to freeze queue for deleting
tag set.

This patch fixes the WARNING of "percpu_ref_kill() called more than once!"
which is triggered during unloading block driver.

Cc: Tejun Heo <tj@kernel.org>
Signed-off-by: Ming Lei <ming.lei@canonical.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
block/blk-mq.c

index 5189cb1e478a6b283609006364c01f9f8e31d082..ac8a0413664e67ca435bd82f3ac9cb025c65e494 100644 (file)
@@ -1713,14 +1713,10 @@ static void blk_mq_del_queue_tag_set(struct request_queue *q)
 {
        struct blk_mq_tag_set *set = q->tag_set;
 
-       blk_mq_freeze_queue(q);
-
        mutex_lock(&set->tag_list_lock);
        list_del_init(&q->tag_set_list);
        blk_mq_update_tag_set_depth(set);
        mutex_unlock(&set->tag_list_lock);
-
-       blk_mq_unfreeze_queue(q);
 }
 
 static void blk_mq_add_queue_tag_set(struct blk_mq_tag_set *set,