mm/memcg: set memcg after css verified and got reference
authorWei Yang <richard.weiyang@gmail.com>
Fri, 29 Apr 2022 06:15:58 +0000 (23:15 -0700)
committerakpm <akpm@linux-foundation.org>
Fri, 29 Apr 2022 06:15:58 +0000 (23:15 -0700)
Patch series "mm/memcg: some cleanup for mem_cgroup_iter()", v2.

No functional change, try to make it more readable.

This patch (of 3):

Instead of resetting memcg when css is either not verified or not got
reference, we can set it after these process.

No functional change, just simplified the code a little.

Link: https://lkml.kernel.org/r/20220330234719.18340-1-richard.weiyang@gmail.com
Link: https://lkml.kernel.org/r/20220330234719.18340-2-richard.weiyang@gmail.com
Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Reviewed-by: Roman Gushchin <roman.gushchin@linux.dev>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Shakeel Butt <shakeelb@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/memcontrol.c

index 5c3e2e3..f06b5c2 100644 (file)
@@ -1065,15 +1065,10 @@ struct mem_cgroup *mem_cgroup_iter(struct mem_cgroup *root,
                 * is provided by the caller, so we know it's alive
                 * and kicking, and don't take an extra reference.
                 */
-               memcg = mem_cgroup_from_css(css);
-
-               if (css == &root->css)
-                       break;
-
-               if (css_tryget(css))
+               if (css == &root->css || css_tryget(css)) {
+                       memcg = mem_cgroup_from_css(css);
                        break;
-
-               memcg = NULL;
+               }
        }
 
        if (reclaim) {