blk-cgroup: fix error unwinding in blkcg_init_queue

[ Upstream commit 33dc62796c ]

When blk_throtl_init fails, we need to call blk_ioprio_exit.  Switch to
proper goto based unwinding to fix this.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Andreas Herrmann <aherrmann@suse.de>
Acked-by: Tejun Heo <tj@kernel.org>
Link: https://lore.kernel.org/r/20220921180501.1539876-2-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Stable-dep-of: 813e693023 ("blk-iolatency: Fix memory leak on add_disk() failures")
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Christoph Hellwig 2022-09-21 20:04:45 +02:00 committed by Greg Kroah-Hartman
parent 8c39c8d23f
commit 4cb8b37925
1 changed files with 7 additions and 6 deletions

View File

@ -1297,17 +1297,18 @@ int blkcg_init_queue(struct request_queue *q)
ret = blk_throtl_init(q);
if (ret)
goto err_destroy_all;
goto err_ioprio_exit;
ret = blk_iolatency_init(q);
if (ret) {
blk_throtl_exit(q);
blk_ioprio_exit(q);
goto err_destroy_all;
}
if (ret)
goto err_throtl_exit;
return 0;
err_throtl_exit:
blk_throtl_exit(q);
err_ioprio_exit:
blk_ioprio_exit(q);
err_destroy_all:
blkg_destroy_all(q);
return ret;