From b82a1285c8f6da6d33f73ec73b824c422b975cca Mon Sep 17 00:00:00 2001 From: Wanpeng Li Date: Sat, 21 Jul 2012 10:54:34 +1000 Subject: [PATCH] memcg: add mem_cgroup_from_css() helper Add a mem_cgroup_from_css() helper to replace open-coded invokations of container_of(). To clarify the code and to add a little more type safety. Signed-off-by: Wanpeng Li Acked-by: Michal Hocko Cc: Johannes Weiner Cc: KAMEZAWA Hiroyuki Cc: Gavin Shan Cc: Wanpeng Li Signed-off-by: Andrew Morton --- mm/memcontrol.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 2ac431620051..3fdd00a2d731 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -411,6 +411,12 @@ static void mem_cgroup_put(struct mem_cgroup *memcg); #include #include +static inline +struct mem_cgroup *mem_cgroup_from_css(struct cgroup_subsys_state *s) +{ + return container_of(s, struct mem_cgroup, css); +} + static bool mem_cgroup_is_root(struct mem_cgroup *memcg); void sock_update_memcg(struct sock *sk) { @@ -863,7 +869,7 @@ static void memcg_check_events(struct mem_cgroup *memcg, struct page *page) struct mem_cgroup *mem_cgroup_from_cont(struct cgroup *cont) { - return container_of(cgroup_subsys_state(cont, + return mem_cgroup_from_css(cgroup_subsys_state(cont, mem_cgroup_subsys_id), struct mem_cgroup, css); } @@ -878,7 +884,7 @@ struct mem_cgroup *mem_cgroup_from_task(struct task_struct *p) if (unlikely(!p)) return NULL; - return container_of(task_subsys_state(p, mem_cgroup_subsys_id), + return mem_cgroup_from_css(task_subsys_state(p, mem_cgroup_subsys_id), struct mem_cgroup, css); } @@ -965,7 +971,7 @@ struct mem_cgroup *mem_cgroup_iter(struct mem_cgroup *root, css = css_get_next(&mem_cgroup_subsys, id + 1, &root->css, &id); if (css) { if (css == &root->css || css_tryget(css)) - memcg = container_of(css, + memcg = mem_cgroup_from_css(css, struct mem_cgroup, css); } else id = 0; @@ -2495,7 +2501,7 @@ static struct mem_cgroup *mem_cgroup_lookup(unsigned short id) css = css_lookup(&mem_cgroup_subsys, id); if (!css) return NULL; - return container_of(css, struct mem_cgroup, css); + return mem_cgroup_from_css(css, struct mem_cgroup, css); } struct mem_cgroup *try_get_mem_cgroup_from_page(struct page *page) -- 2.39.5