Skip to content

Commit 3eb59ec

Browse files
lizf-oshtejun
authored andcommitted
cgroup: fix a failure path in create_css()
If online_css() fails, we should remove cgroup files belonging to css->ss. Signed-off-by: Li Zefan <[email protected]> Signed-off-by: Tejun Heo <[email protected]>
1 parent 99afb0f commit 3eb59ec

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

kernel/cgroup.c

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4112,17 +4112,17 @@ static int create_css(struct cgroup *cgrp, struct cgroup_subsys *ss)
41124112

41134113
err = percpu_ref_init(&css->refcnt, css_release);
41144114
if (err)
4115-
goto err_free;
4115+
goto err_free_css;
41164116

41174117
init_css(css, ss, cgrp);
41184118

41194119
err = cgroup_populate_dir(cgrp, 1 << ss->subsys_id);
41204120
if (err)
4121-
goto err_free;
4121+
goto err_free_percpu_ref;
41224122

41234123
err = online_css(css);
41244124
if (err)
4125-
goto err_free;
4125+
goto err_clear_dir;
41264126

41274127
dget(cgrp->dentry);
41284128
css_get(css->parent);
@@ -4138,8 +4138,11 @@ static int create_css(struct cgroup *cgrp, struct cgroup_subsys *ss)
41384138

41394139
return 0;
41404140

4141-
err_free:
4141+
err_clear_dir:
4142+
cgroup_clear_dir(css->cgroup, 1 << css->ss->subsys_id);
4143+
err_free_percpu_ref:
41424144
percpu_ref_cancel_init(&css->refcnt);
4145+
err_free_css:
41434146
ss->css_free(css);
41444147
return err;
41454148
}

0 commit comments

Comments
 (0)