cgroup: fix fail path in cgroup_load_subsys()
authorVladimir Davydov <vdavydov@parallels.com>
Thu, 12 Dec 2013 19:17:08 +0000 (23:17 +0400)
committerTejun Heo <tj@kernel.org>
Fri, 13 Dec 2013 20:46:49 +0000 (15:46 -0500)
commit10bf2f7e7db993273419ca9f51f5934e4cf71768
tree3d6f820b4409859fc97e4dfc8a3c90d936d27b24
parent0be8669dd530f60cf3f59f084518570c1dfb47ee
cgroup: fix fail path in cgroup_load_subsys()

Calling cgroup_unload_subsys() from cgroup_load_subsys() after
online_css() failure will result in a NULL ptr dereference on attempt to
offline_css(), because online_css() only assigns css to cgroup on
success. Let's fix that by skipping calls to offline_css() and
css_free() in cgroup_unload_subsys() if there is no css, and freeing css
in cgroup_load_subsys() on online_css() failure.

Signed-off-by: Vladimir Davydov <vdavydov@parallels.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: Li Zefan <lizefan@huawei.com>
kernel/cgroup.c