summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'kernel')
-rw-r--r--kernel/cgroup.c6
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;