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 <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>
This commit is contained in:
parent
41555dadbf
commit
89d8330ccf
|
@ -1013,9 +1013,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) {
|
||||
|
@ -1041,6 +1038,8 @@ struct mem_cgroup *mem_cgroup_iter(struct mem_cgroup *root,
|
|||
*/
|
||||
(void)cmpxchg(&iter->position, pos, NULL);
|
||||
}
|
||||
} else if (prev) {
|
||||
pos = prev;
|
||||
}
|
||||
|
||||
if (pos)
|
||||
|
|
Loading…
Reference in New Issue