]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
mm/memcg: set pos explicitly for reclaim and !reclaim
authorWei Yang <richard.weiyang@gmail.com>
Thu, 14 Apr 2022 06:07:05 +0000 (23:07 -0700)
committerakpm <akpm@linux-foundation.org>
Thu, 14 Apr 2022 06:07:05 +0000 (23:07 -0700)
During mem_cgroup_iter, there are two ways to get iteration position:
reclaim vs non-reclaim mode.

Let's do it explicitly for reclaim vs non-reclaim mode.

Link: https://lkml.kernel.org/r/20220330234719.18340-3-richard.weiyang@gmail.com
Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
Reviewed-by: Roman Gushchin <roman.gushchin@linux.dev>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/memcontrol.c

index 4610712fb11d4ee7ebda107636dbebab8bbc7143..357960df1f0205fa44b7c4b8d50e3ae472e82125 100644 (file)
@@ -1014,9 +1014,6 @@ struct mem_cgroup *mem_cgroup_iter(struct mem_cgroup *root,
        if (!root)
                root = root_mem_cgroup;
 
-       if (prev && !reclaim)
-               pos = prev;
-
        rcu_read_lock();
 
        if (reclaim) {
@@ -1042,6 +1039,8 @@ struct mem_cgroup *mem_cgroup_iter(struct mem_cgroup *root,
                         */
                        (void)cmpxchg(&iter->position, pos, NULL);
                }
+       } else if (prev) {
+               pos = prev;
        }
 
        if (pos)