diff options
author | Ming Lei <ming.lei@canonical.com> | 2014-08-15 11:16:32 -0400 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2014-08-15 14:38:20 -0400 |
commit | dd840087086f3b93ac20f7472b4fca59aff7b79f (patch) | |
tree | 7041c173625a6099816b920f8f27c1b044a5fda4 /block | |
parent | c9d26423e56ce1ab4d786f92aebecf859d419293 (diff) |
blk-mq: fix WARNING "percpu_ref_kill() called more than once!"
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>
Diffstat (limited to 'block')
-rw-r--r-- | block/blk-mq.c | 4 |
1 files changed, 0 insertions, 4 deletions
diff --git a/block/blk-mq.c b/block/blk-mq.c index 5189cb1e478a..ac8a0413664e 100644 --- a/block/blk-mq.c +++ b/block/blk-mq.c | |||
@@ -1713,14 +1713,10 @@ static void blk_mq_del_queue_tag_set(struct request_queue *q) | |||
1713 | { | 1713 | { |
1714 | struct blk_mq_tag_set *set = q->tag_set; | 1714 | struct blk_mq_tag_set *set = q->tag_set; |
1715 | 1715 | ||
1716 | blk_mq_freeze_queue(q); | ||
1717 | |||
1718 | mutex_lock(&set->tag_list_lock); | 1716 | mutex_lock(&set->tag_list_lock); |
1719 | list_del_init(&q->tag_set_list); | 1717 | list_del_init(&q->tag_set_list); |
1720 | blk_mq_update_tag_set_depth(set); | 1718 | blk_mq_update_tag_set_depth(set); |
1721 | mutex_unlock(&set->tag_list_lock); | 1719 | mutex_unlock(&set->tag_list_lock); |
1722 | |||
1723 | blk_mq_unfreeze_queue(q); | ||
1724 | } | 1720 | } |
1725 | 1721 | ||
1726 | static void blk_mq_add_queue_tag_set(struct blk_mq_tag_set *set, | 1722 | static void blk_mq_add_queue_tag_set(struct blk_mq_tag_set *set, |