summaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2013-06-25 18:05:21 -0700
committerTejun Heo <tj@kernel.org>2013-06-26 10:40:10 -0700
commiteb178d063324d9c30f673db3877b892a48ade21e (patch)
treebeb6a51e60b40c07f18cac6d1938aa8730416983 /kernel
parent1672d040709b789671c0502e7aac9d632c2f9175 (diff)
downloadlinux-eb178d063324d9c30f673db3877b892a48ade21e.tar.gz
linux-eb178d063324d9c30f673db3877b892a48ade21e.tar.bz2
linux-eb178d063324d9c30f673db3877b892a48ade21e.zip
cgroup: grab cgroup_mutex in drop_parsed_module_refcounts()
This isn't strictly necessary as all subsystems specified in @subsys_mask are guaranteed to be pinned; however, it does spuriously trigger lockdep warning. Let's grab cgroup_mutex around it. Signed-off-by: Tejun Heo <tj@kernel.org> Acked-by: Li Zefan <lizefan@huawei.com>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/cgroup.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/kernel/cgroup.c b/kernel/cgroup.c
index e801ecfa36ef..2d3a132e881d 100644
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
@@ -1325,11 +1325,11 @@ static void drop_parsed_module_refcounts(unsigned long subsys_mask)
struct cgroup_subsys *ss;
int i;
- for_each_subsys(ss, i) {
- if (!(subsys_mask & (1UL << i)))
- continue;
- module_put(cgroup_subsys[i]->module);
- }
+ mutex_lock(&cgroup_mutex);
+ for_each_subsys(ss, i)
+ if (subsys_mask & (1UL << i))
+ module_put(cgroup_subsys[i]->module);
+ mutex_unlock(&cgroup_mutex);
}
static int cgroup_remount(struct super_block *sb, int *flags, char *data)