Commit 648bb56d authored by Tejun Heo's avatar Tejun Heo

cgroup: lock cgroup_mutex in cgroup_init_subsys()

Make cgroup_init_subsys() grab cgroup_mutex while initializing a
subsystem so that all helpers and callbacks are called under the
context they expect.  This isn't strictly necessary as
cgroup_init_subsys() doesn't race with anybody but will allow adding
lockdep assertions.
Signed-off-by: default avatarTejun Heo <tj@kernel.org>
Acked-by: default avatarLi Zefan <lizefan@huawei.com>
parent b48c6a80
...@@ -4317,6 +4317,8 @@ static void __init cgroup_init_subsys(struct cgroup_subsys *ss) ...@@ -4317,6 +4317,8 @@ static void __init cgroup_init_subsys(struct cgroup_subsys *ss)
printk(KERN_INFO "Initializing cgroup subsys %s\n", ss->name); printk(KERN_INFO "Initializing cgroup subsys %s\n", ss->name);
mutex_lock(&cgroup_mutex);
/* init base cftset */ /* init base cftset */
cgroup_init_cftsets(ss); cgroup_init_cftsets(ss);
...@@ -4346,6 +4348,8 @@ static void __init cgroup_init_subsys(struct cgroup_subsys *ss) ...@@ -4346,6 +4348,8 @@ static void __init cgroup_init_subsys(struct cgroup_subsys *ss)
if (ss->post_create) if (ss->post_create)
ss->post_create(dummytop); ss->post_create(dummytop);
mutex_unlock(&cgroup_mutex);
/* this function shouldn't be used with modular subsystems, since they /* this function shouldn't be used with modular subsystems, since they
* need to register a subsys_id, among other things */ * need to register a subsys_id, among other things */
BUG_ON(ss->module); BUG_ON(ss->module);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment