Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b58c8998 authored by Tejun Heo's avatar Tejun Heo
Browse files

cgroup: fix error return from cgroup_create()



cgroup_create() was returning 0 after allocation failures.  Fix it.

Signed-off-by: default avatarTejun Heo <tj@kernel.org>
Acked-by: default avatarLi Zefan <lizefan@huawei.com>
Cc: stable@vger.kernel.org
parent eb46bf89
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -4158,7 +4158,7 @@ static long cgroup_create(struct cgroup *parent, struct dentry *dentry,
	struct cgroup *cgrp;
	struct cgroup_name *name;
	struct cgroupfs_root *root = parent->root;
	int ssid, err = 0;
	int ssid, err;
	struct cgroup_subsys *ss;
	struct super_block *sb = root->sb;

@@ -4168,8 +4168,10 @@ static long cgroup_create(struct cgroup *parent, struct dentry *dentry,
		return -ENOMEM;

	name = cgroup_alloc_name(dentry);
	if (!name)
	if (!name) {
		err = -ENOMEM;
		goto err_free_cgrp;
	}
	rcu_assign_pointer(cgrp->name, name);

	/*
@@ -4177,8 +4179,10 @@ static long cgroup_create(struct cgroup *parent, struct dentry *dentry,
	 * a half-baked cgroup.
	 */
	cgrp->id = idr_alloc(&root->cgroup_idr, NULL, 1, 0, GFP_KERNEL);
	if (cgrp->id < 0)
	if (cgrp->id < 0) {
		err = -ENOMEM;
		goto err_free_name;
	}

	/*
	 * Only live parents can have children.  Note that the liveliness