diff options
author | Vladimir Davydov <vdavydov@parallels.com> | 2015-02-19 09:34:46 -0500 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2015-03-02 12:11:01 -0500 |
commit | 295458e67284f57d154ec8156a22797c0cfb044a (patch) | |
tree | 0229507c7ffcb1ea79ccd6989e42f2784bb5bbf9 | |
parent | 283cb41f426b723a0255702b761b0fc5d1b53a81 (diff) |
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>
-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) | |||
5040 | WARN_ON(cgroup_add_dfl_cftypes(ss, ss->dfl_cftypes)); | 5040 | WARN_ON(cgroup_add_dfl_cftypes(ss, ss->dfl_cftypes)); |
5041 | WARN_ON(cgroup_add_legacy_cftypes(ss, ss->legacy_cftypes)); | 5041 | WARN_ON(cgroup_add_legacy_cftypes(ss, ss->legacy_cftypes)); |
5042 | } | 5042 | } |
5043 | |||
5044 | if (ss->bind) | ||
5045 | ss->bind(init_css_set.subsys[ssid]); | ||
5043 | } | 5046 | } |
5044 | 5047 | ||
5045 | cgroup_kobj = kobject_create_and_add("cgroup", fs_kobj); | 5048 | cgroup_kobj = kobject_create_and_add("cgroup", fs_kobj); |