diff options
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/cgroup.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/kernel/cgroup.c b/kernel/cgroup.c index 11353701f40d..4733c722de51 100644 --- a/kernel/cgroup.c +++ b/kernel/cgroup.c @@ -5232,8 +5232,10 @@ static struct cgroup *cgroup_create(struct cgroup *parent) cgrp->root = root; cgrp->level = level; ret = cgroup_bpf_inherit(cgrp); - if (ret) - goto out_idr_free; + if (ret) { + cgroup_idr_remove(&root->cgroup_idr, cgrp->id); + goto out_cancel_ref; + } for (tcgrp = cgrp; tcgrp; tcgrp = cgroup_parent(tcgrp)) cgrp->ancestor_ids[tcgrp->level] = tcgrp->id; |
