Commit 33dc6279 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Jens Axboe
Browse files

blk-cgroup: fix error unwinding in blkcg_init_queue



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

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarAndreas Herrmann <aherrmann@suse.de>
Acked-by: default avatarTejun Heo <tj@kernel.org>
Link: https://lore.kernel.org/r/20220921180501.1539876-2-hch@lst.de


Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent f168420c
Loading
Loading
Loading
Loading
+7 −6
Original line number Diff line number Diff line
@@ -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;