Commit 58a9edce authored by weiping zhang's avatar weiping zhang Committed by Jens Axboe
Browse files

blkcg: check pol->cpd_free_fn before free cpd



check pol->cpd_free_fn() instead of pol->cpd_alloc_fn() when free cpd.

Reviewed-by: default avatarJohannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: default avatarweiping zhang <zhangweiping@didichuxing.com>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 8264c321
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1452,7 +1452,7 @@ int blkcg_policy_register(struct blkcg_policy *pol)
	return 0;

err_free_cpds:
	if (pol->cpd_alloc_fn) {
	if (pol->cpd_free_fn) {
		list_for_each_entry(blkcg, &all_blkcgs, all_blkcgs_node) {
			if (blkcg->cpd[pol->plid]) {
				pol->cpd_free_fn(blkcg->cpd[pol->plid]);
@@ -1492,7 +1492,7 @@ void blkcg_policy_unregister(struct blkcg_policy *pol)
	/* remove cpds and unregister */
	mutex_lock(&blkcg_pol_mutex);

	if (pol->cpd_alloc_fn) {
	if (pol->cpd_free_fn) {
		list_for_each_entry(blkcg, &all_blkcgs, all_blkcgs_node) {
			if (blkcg->cpd[pol->plid]) {
				pol->cpd_free_fn(blkcg->cpd[pol->plid]);