summaryrefslogtreecommitdiffstats
path: root/kernel/cgroup_freezer.c
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2012-11-09 18:12:29 +0100
committerTejun Heo <tj@kernel.org>2012-11-09 18:12:29 +0100
commit574bd9f7c7c1d32f52dea5488018a6ff79031e22 (patch)
treef43657afb59dd12fe1eca329acc6caf885507727 /kernel/cgroup_freezer.c
parentcgroup: use rculist ops for cgroup->children (diff)
downloadlinux-574bd9f7c7c1d32f52dea5488018a6ff79031e22.tar.xz
linux-574bd9f7c7c1d32f52dea5488018a6ff79031e22.zip
cgroup: implement generic child / descendant walk macros
Currently, cgroup doesn't provide any generic helper for walking a given cgroup's children or descendants. This patch adds the following three macros. * cgroup_for_each_child() - walk immediate children of a cgroup. * cgroup_for_each_descendant_pre() - visit all descendants of a cgroup in pre-order tree traversal. * cgroup_for_each_descendant_post() - visit all descendants of a cgroup in post-order tree traversal. All three only require the user to hold RCU read lock during traversal. Verifying that each iterated cgroup is online is the responsibility of the user. When used with proper synchronization, cgroup_for_each_descendant_pre() can be used to propagate state updates to descendants in reliable way. See comments for details. v2: s/config/state/ in commit message and comments per Michal. More documentation on synchronization rules. Signed-off-by: Tejun Heo <tj@kernel.org> Reviewed-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujisu.com> Reviewed-by: Michal Hocko <mhocko@suse.cz> Acked-by: Li Zefan <lizefan@huawei.com>
Diffstat (limited to 'kernel/cgroup_freezer.c')
0 files changed, 0 insertions, 0 deletions