summaryrefslogtreecommitdiffstats
path: root/block/blk-mq.c
diff options
context:
space:
mode:
authorMing Lei <tom.leiming@gmail.com>2014-05-27 16:34:45 +0200
committerJens Axboe <axboe@fb.com>2014-05-27 16:34:45 +0200
commit1f9f07e917f43af420f8cb3afc2b3fa703cea6e9 (patch)
treefceb97830c0601462a0dbb7547057c9cca41579e /block/blk-mq.c
parentblock/blk-lib.c: make __blkdev_issue_zeroout static (diff)
downloadlinux-1f9f07e917f43af420f8cb3afc2b3fa703cea6e9.tar.xz
linux-1f9f07e917f43af420f8cb3afc2b3fa703cea6e9.zip
blk-mq: fix leak of hctx->ctx_map
hctx->ctx_map should have been freed inside blk_mq_free_queue(). Signed-off-by: Ming Lei <tom.leiming@gmail.com> Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'block/blk-mq.c')
-rw-r--r--block/blk-mq.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/block/blk-mq.c b/block/blk-mq.c
index 62082c5daae7..dad22a9abe49 100644
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@ -1846,6 +1846,7 @@ void blk_mq_free_queue(struct request_queue *q)
queue_for_each_hw_ctx(q, hctx, i) {
blk_mq_tag_idle(hctx);
kfree(hctx->ctxs);
+ blk_mq_free_bitmap(&hctx->ctx_map);
blk_mq_unregister_cpu_notifier(&hctx->cpu_notifier);
if (q->mq_ops->exit_hctx)
q->mq_ops->exit_hctx(hctx, i);