Skip to content

Commit

Permalink
blk-mq: idle all hardware contexts before freeing a queue
Browse files Browse the repository at this point in the history
Without this we can leak the active_queues reference if a command is
freed while it is considered active.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@fb.com>
  • Loading branch information
Christoph Hellwig authored and Jens Axboe committed May 26, 2014
1 parent c22d9d8 commit 19c5d84
Showing 1 changed file with 1 addition and 0 deletions.
1 change: 1 addition & 0 deletions block/blk-mq.c
Original file line number Diff line number Diff line change
Expand Up @@ -1844,6 +1844,7 @@ void blk_mq_free_queue(struct request_queue *q)
blk_mq_del_queue_tag_set(q);

queue_for_each_hw_ctx(q, hctx, i) {
blk_mq_tag_idle(hctx);
kfree(hctx->ctxs);
blk_mq_unregister_cpu_notifier(&hctx->cpu_notifier);
if (q->mq_ops->exit_hctx)
Expand Down

0 comments on commit 19c5d84

Please sign in to comment.