Commit 27029b4b authored by Yufen Yu's avatar Yufen Yu Committed by Jens Axboe
Browse files

blkcg: fix memleak for iolatency



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: d7067512 ("block: introduce blk-iolatency io controller")
Signed-off-by: default avatarYufen Yu <yuyufen@huawei.com>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 0c8b9c35
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -1152,13 +1152,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: