Messages in this thread Patch in this message | | | Date | Sat, 22 Nov 2008 12:09:38 +0800 | From | Lai Jiangshan <> | Subject | [PATCH] 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> --- diff --git a/kernel/cgroup.c b/kernel/cgroup.c index 358e775..e6d92a5 100644 --- a/kernel/cgroup.c +++ b/kernel/cgroup.c @@ -2047,7 +2047,6 @@ int cgroupstats_build(struct cgroupstats *stats, struct dentry *dentry) ret = 0; cgrp = dentry->d_fsdata; - rcu_read_lock(); cgroup_iter_start(cgrp, &it); while ((tsk = cgroup_iter_next(cgrp, &it))) { @@ -2072,7 +2071,6 @@ int cgroupstats_build(struct cgroupstats *stats, struct dentry *dentry) } cgroup_iter_end(cgrp, &it); - rcu_read_unlock(); err: return ret; }
| |