cgroup: use release_agent_path_lock in cgroup_release_agent_show()
authorTejun Heo <tj@kernel.org>
Tue, 13 May 2014 16:11:00 +0000 (12:11 -0400)
committerTejun Heo <tj@kernel.org>
Tue, 13 May 2014 16:11:00 +0000 (12:11 -0400)
release_path is now protected by release_agent_path_lock to allow
accessing it without grabbing cgroup_mutex; however,
cgroup_release_agent_show() was still grabbing cgroup_mutex.  Let's
convert it to release_agent_path_lock so that we don't have to worry
about this one for the planned locking updates.

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

index 3251cc9070fa33198b445f01f5f8f45d85fa651a..7633703e9baf324e750412612fcb6f4bb70c2083 100644 (file)
@@ -2373,11 +2373,10 @@ static int cgroup_release_agent_show(struct seq_file *seq, void *v)
 {
        struct cgroup *cgrp = seq_css(seq)->cgroup;
 
-       if (!cgroup_lock_live_group(cgrp))
-               return -ENODEV;
+       spin_lock(&release_agent_path_lock);
        seq_puts(seq, cgrp->root->release_agent_path);
+       spin_unlock(&release_agent_path_lock);
        seq_putc(seq, '\n');
-       mutex_unlock(&cgroup_mutex);
        return 0;
 }