Revert "blk-cgroup: dropping parent refcount after pd_free_fn() is done"
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 11 Mar 2023 09:34:39 +0000 (10:34 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 11 Mar 2023 10:03:45 +0000 (11:03 +0100)
This reverts commit 029f1f1efa84387474b445dac4281cf95a398db8 which is
commit c7241babf0855d8a6180cd1743ff0ec34de40b4e upstream.

It is reported to cause problems, as only 2 of the 3 patch series were
applied to the stable branches.

Reported-by: Mike Cloaked <mike.cloaked@gmail.com>
Reported-by: Eric Biggers <ebiggers@kernel.org>
Cc: Yu Kuai <yukuai3@huawei.com>
Cc: Tejun Heo <tj@kernel.org>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Sasha Levin <sashal@kernel.org>
Link: https://bugzilla.kernel.org/show_bug.cgi?id=217174
Link: https://lore.kernel.org/r/ZAuPkCn49urWBN5P@sol.localdomain
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
block/blk-cgroup.c

index 8d1b775..7c91d91 100644 (file)
@@ -93,8 +93,6 @@ static void blkg_free_workfn(struct work_struct *work)
                if (blkg->pd[i])
                        blkcg_policy[i]->pd_free_fn(blkg->pd[i]);
 
-       if (blkg->parent)
-               blkg_put(blkg->parent);
        if (blkg->q)
                blk_put_queue(blkg->q);
        free_percpu(blkg->iostat_cpu);
@@ -129,6 +127,8 @@ static void __blkg_release(struct rcu_head *rcu)
 
        /* release the blkcg and parent blkg refs this blkg has been holding */
        css_put(&blkg->blkcg->css);
+       if (blkg->parent)
+               blkg_put(blkg->parent);
        blkg_free(blkg);
 }