diff options
author | Vladimir Davydov <vdavydov@parallels.com> | 2015-02-19 17:34:46 +0300 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2015-03-02 12:11:01 -0500 |
commit | 295458e67284f57d154ec8156a22797c0cfb044a (patch) | |
tree | 0229507c7ffcb1ea79ccd6989e42f2784bb5bbf9 /kernel/cgroup.c | |
parent | 283cb41f426b723a0255702b761b0fc5d1b53a81 (diff) | |
download | linux-295458e67284f57d154ec8156a22797c0cfb044a.tar.gz linux-295458e67284f57d154ec8156a22797c0cfb044a.tar.bz2 linux-295458e67284f57d154ec8156a22797c0cfb044a.zip |
cgroup: call cgroup_subsys->bind on cgroup subsys initialization
Currently, we call cgroup_subsys->bind only on unmount, remount, and
when creating a new root on mount. Since the default hierarchy root is
created in cgroup_init, we will not call cgroup_subsys->bind if the
default hierarchy is freshly mounted. As a result, some controllers will
behave incorrectly (most notably, the "memory" controller will not
enable hierarchy support). Fix this by calling cgroup_subsys->bind right
after initializing a cgroup subsystem.
Signed-off-by: Vladimir Davydov <vdavydov@parallels.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'kernel/cgroup.c')
-rw-r--r-- | kernel/cgroup.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/kernel/cgroup.c b/kernel/cgroup.c index 29a7b2cc593e..21a4b6d61e21 100644 --- a/kernel/cgroup.c +++ b/kernel/cgroup.c @@ -5040,6 +5040,9 @@ int __init cgroup_init(void) WARN_ON(cgroup_add_dfl_cftypes(ss, ss->dfl_cftypes)); WARN_ON(cgroup_add_legacy_cftypes(ss, ss->legacy_cftypes)); } + + if (ss->bind) + ss->bind(init_css_set.subsys[ssid]); } cgroup_kobj = kobject_create_and_add("cgroup", fs_kobj); |