aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLai Jiangshan <laijs@cn.fujitsu.com>2009-01-07 21:07:40 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2009-01-08 11:31:03 -0500
commit7534432dcc3c654a8671b6b0cdffd1dbdbc73074 (patch)
tree65a5010c8bc5062d004fd1ede32e8f7ba64f6eec
parent77efecd9e0526327548152df715ab8644ecb5ba0 (diff)
cgroups: remove rcu_read_lock() in cgroupstats_build()
cgroup_iter_* do not need rcu_read_lock(). In cgroup_enable_task_cg_lists(), do_each_thread() and while_each_thread() are protected by RCU, it's OK, for write_lock(&css_set_lock) implies rcu_read_lock() in non-RT kernel. If we need explicit rcu_read_lock(), we should add rcu_read_lock() in cgroup_enable_task_cg_lists(), not cgroup_iter_*. Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com> Acked-by: Paul Menage <menage@google.com> Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: Pavel Emelyanov <xemul@openvz.org> Cc: Balbir Singh <balbir@in.ibm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--kernel/cgroup.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/kernel/cgroup.c b/kernel/cgroup.c
index 61e92c5867ea..f55af3daffc2 100644
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
@@ -2055,7 +2055,6 @@ int cgroupstats_build(struct cgroupstats *stats, struct dentry *dentry)
2055 2055
2056 ret = 0; 2056 ret = 0;
2057 cgrp = dentry->d_fsdata; 2057 cgrp = dentry->d_fsdata;
2058 rcu_read_lock();
2059 2058
2060 cgroup_iter_start(cgrp, &it); 2059 cgroup_iter_start(cgrp, &it);
2061 while ((tsk = cgroup_iter_next(cgrp, &it))) { 2060 while ((tsk = cgroup_iter_next(cgrp, &it))) {
@@ -2080,7 +2079,6 @@ int cgroupstats_build(struct cgroupstats *stats, struct dentry *dentry)
2080 } 2079 }
2081 cgroup_iter_end(cgrp, &it); 2080 cgroup_iter_end(cgrp, &it);
2082 2081
2083 rcu_read_unlock();
2084err: 2082err:
2085 return ret; 2083 return ret;
2086} 2084}