summaryrefslogtreecommitdiffstats
path: root/kernel/notifier.c
diff options
context:
space:
mode:
authorKAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>2010-10-27 15:33:41 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2010-10-27 18:03:09 -0700
commit7d74b06f240f1bd1b4b68dd6fe84164d8bf4e315 (patch)
tree3b52304b322390a9b5782b4d498e5e0a14e3266b /kernel/notifier.c
parent32047e2a85f06633ee4c53e2d0346fbcd34e480b (diff)
downloadlinux-7d74b06f240f1bd1b4b68dd6fe84164d8bf4e315.tar.gz
linux-7d74b06f240f1bd1b4b68dd6fe84164d8bf4e315.tar.bz2
linux-7d74b06f240f1bd1b4b68dd6fe84164d8bf4e315.zip
memcg: use for_each_mem_cgroup
In memory cgroup management, we sometimes have to walk through subhierarchy of cgroup to gather informaiton, or lock something, etc. Now, to do that, mem_cgroup_walk_tree() function is provided. It calls given callback function per cgroup found. But the bad thing is that it has to pass a fixed style function and argument, "void*" and it adds much type casting to memcontrol.c. To make the code clean, this patch replaces walk_tree() with for_each_mem_cgroup_tree(iter, root) An iterator style call. The good point is that iterator call doesn't have to assume what kind of function is called under it. A bad point is that it may cause reference-count leak if a caller use "break" from the loop by mistake. I think the benefit is larger. The modified code seems straigtforward and easy to read because we don't have misterious callbacks and pointer cast. Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: Balbir Singh <balbir@in.ibm.com> Cc: Daisuke Nishimura <nishimura@mxp.nes.nec.co.jp> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel/notifier.c')
0 files changed, 0 insertions, 0 deletions