Skip to content

Commit

Permalink
blkcg: fix memleak for iolatency
Browse files Browse the repository at this point in the history
[ Upstream commit 27029b4 ]

Normally, blkcg_iolatency_exit() will free related memory in iolatency
when cleanup queue. But if blk_throtl_init() return error and queue init
fail, blkcg_iolatency_exit() will not do that for us. Then it cause
memory leak.

Fixes: d706751 ("block: introduce blk-iolatency io controller")
Signed-off-by: Yufen Yu <yuyufen@huawei.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Sasha Levin <sashal@kernel.org>
  • Loading branch information
Yufen Yu authored and gregkh committed Sep 3, 2020
1 parent 872a2b3 commit 05c608f
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions block/blk-cgroup.c
Expand Up @@ -1219,13 +1219,15 @@ int blkcg_init_queue(struct request_queue *q)
if (preloaded)
radix_tree_preload_end();

ret = blk_iolatency_init(q);
ret = blk_throtl_init(q);
if (ret)
goto err_destroy_all;

ret = blk_throtl_init(q);
if (ret)
ret = blk_iolatency_init(q);
if (ret) {
blk_throtl_exit(q);
goto err_destroy_all;
}
return 0;

err_destroy_all:
Expand Down

0 comments on commit 05c608f

Please sign in to comment.