cgroup: simplify cgroup_load_subsys() failure path
authorTejun Heo <tj@kernel.org>
Mon, 19 Nov 2012 16:13:37 +0000 (08:13 -0800)
committerTejun Heo <tj@kernel.org>
Mon, 19 Nov 2012 16:13:37 +0000 (08:13 -0800)
commitd19e19de48aa0b90c56cd93c8a46ebac46273429
treeea485692e0b5a7fdfa6bf6a80558957e89b220c2
parenta31f2d3ff7fe20cbe2a143515a7d7c408b29dd0d
cgroup: simplify cgroup_load_subsys() failure path

Now that cgroup_unload_subsys() can tell whether the root css is
online or not, we can safely call cgroup_unload_subsys() after idr
init failure in cgroup_load_subsys().

Replace the manual unrolling and invoke cgroup_unload_subsys() on
failure.  This drops cgroup_mutex inbetween but should be safe as the
subsystem will fail try_module_get() and thus can't be mounted
inbetween.  As this means that cgroup_unload_subsys() can be called
before css_sets are rehashed, remove BUG_ON() on %NULL
css_set->subsys[] from cgroup_unload_subsys().

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