From: Wei Yang Date: Thu, 14 Apr 2022 06:07:05 +0000 (-0700) Subject: mm/memcg: set pos explicitly for reclaim and !reclaim X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=248cb6c9e3f702a4bd138bcd910510d7c7129300;p=users%2Fjedix%2Flinux-maple.git mm/memcg: set pos explicitly for reclaim and !reclaim 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 Reviewed-by: Roman Gushchin Acked-by: Johannes Weiner Signed-off-by: Andrew Morton --- diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 4610712fb11d..357960df1f02 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -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)