From: Tejun Heo Subject: [PATCH 2/4] cgroup: fix error return from cgroup_create() Date: Tue, 28 Jan 2014 10:32:03 -0500 Message-ID: <1390923125-4369-3-git-send-email-tj@kernel.org> References: <1390923125-4369-1-git-send-email-tj@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=JfP7co514WT/gSmVhZIhVfby5OgyDqcXm06WDAV4D5Q=; b=UpYhvxU6ympbBGmb+y4gERtg5BTqec72A15YIphsQiRP+71ARabHQ8JNH0HtcDWGWl GnaTqggkZOgwgXcDLaTHR3ZA06JUlY6EMZUjlL9NXWIi0Q/UPQj7Nq7sopmMFReTizcw IsvThirPdsTmu4bTeM5osbjp6w/sGceAdRzypwTyp5dd1D7PA0+1tXmk9WpHobXBDQdg vfhEVNktj3yqTzdZvO1fT1AjUuBaLI/0gePHAtjaT3Isdj2K6bRFW4i03j24MvL/Dk0x JxnThk+L2joOaNZbEOV5KDshez/5hGH62YFDIiiWnK5izRfxalxEawtdY3zImpH32Dhj IzrA== In-Reply-To: <1390923125-4369-1-git-send-email-tj-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: containers-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: containers-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org To: lizefan-hv44wF8Li93QT0dZR+AlfA@public.gmane.org Cc: Tejun Heo , cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, stable-u79uwXL29TY76Z2rM5mHXA@public.gmane.org cgroup_create() was returning 0 after allocation failures. Fix it. Signed-off-by: Tejun Heo Cc: stable-u79uwXL29TY76Z2rM5mHXA@public.gmane.org --- kernel/cgroup.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/kernel/cgroup.c b/kernel/cgroup.c index 364aeb22..2e9f12a 100644 --- a/kernel/cgroup.c +++ b/kernel/cgroup.c @@ -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 -- 1.8.5.3