diff mbox series

blk-cgroup: properly pin the parent in blkcg_css_online

Message ID 20221114181930.2093706-1-clm@fb.com (mailing list archive)
State New, archived
Headers show
Series blk-cgroup: properly pin the parent in blkcg_css_online | expand

Commit Message

Chris Mason Nov. 14, 2022, 6:19 p.m. UTC
blkcg_css_online is supposed to pin the blkcg of the parent, but
397c9f46ee4d refactored things and along the way, changed it to pin the
css instead.  This results in extra pins, and we end up leaking blkcgs
and cgroups.

Fixes: 397c9f46ee4d ("blk-cgroup: move blkcg_{pin,unpin}_online out of line")
Signed-off-by: Chris Mason <clm@fb.com>
Spotted-by: Rik van Riel <riel@surriel.com>
Cc: <stable@vger.kernel.org> # v5.19+
---
 block/blk-cgroup.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Johannes Weiner Nov. 14, 2022, 7 p.m. UTC | #1
On Mon, Nov 14, 2022 at 10:19:30AM -0800, Chris Mason wrote:
> blkcg_css_online is supposed to pin the blkcg of the parent, but
> 397c9f46ee4d refactored things and along the way, changed it to pin the
> css instead.  This results in extra pins, and we end up leaking blkcgs
> and cgroups.
> 
> Fixes: 397c9f46ee4d ("blk-cgroup: move blkcg_{pin,unpin}_online out of line")
> Signed-off-by: Chris Mason <clm@fb.com>
> Spotted-by: Rik van Riel <riel@surriel.com>
> Cc: <stable@vger.kernel.org> # v5.19+

Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Jens Axboe Nov. 14, 2022, 7:13 p.m. UTC | #2
On Mon, 14 Nov 2022 10:19:30 -0800, Chris Mason wrote:
> blkcg_css_online is supposed to pin the blkcg of the parent, but
> 397c9f46ee4d refactored things and along the way, changed it to pin the
> css instead.  This results in extra pins, and we end up leaking blkcgs
> and cgroups.
> 
> 

Applied, thanks!

[1/1] blk-cgroup: properly pin the parent in blkcg_css_online
      commit: d7dbd43f4a828fa1d9a8614d5b0ac40aee6375fe

Best regards,
Christoph Hellwig Nov. 15, 2022, 7:57 a.m. UTC | #3
Looks good:

Reviewed-by: Christoph Hellwig <hch@lst.de>
diff mbox series

Patch

diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c
index 6a5c849ee061..ed761c62ad0a 100644
--- a/block/blk-cgroup.c
+++ b/block/blk-cgroup.c
@@ -1213,7 +1213,7 @@  static int blkcg_css_online(struct cgroup_subsys_state *css)
 	 * parent so that offline always happens towards the root.
 	 */
 	if (parent)
-		blkcg_pin_online(css);
+		blkcg_pin_online(&parent->css);
 	return 0;
 }