From f17d8042e53cd45b3fc95659eb59309c1e5d9635 Mon Sep 17 00:00:00 2001 From: Johannes Weiner Date: Wed, 12 Jun 2013 14:05:09 -0700 Subject: [PATCH] --- yaml --- r: 376981 b: refs/heads/master c: 89dc991f0f5272c307c746fdd57d0bff382b1ba2 h: refs/heads/master i: 376979: bc757e72e5405a52666203ebc8533816ca91d3d3 v: v3 --- [refs] | 2 +- trunk/mm/memcontrol.c | 12 +++++------- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/[refs] b/[refs] index 89537f6f5bc3..ae2975df7801 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 7b57976da48e60b66fdbb9e97f5711b5382a49d7 +refs/heads/master: 89dc991f0f5272c307c746fdd57d0bff382b1ba2 diff --git a/trunk/mm/memcontrol.c b/trunk/mm/memcontrol.c index 931e38c6f095..194721839cf5 100644 --- a/trunk/mm/memcontrol.c +++ b/trunk/mm/memcontrol.c @@ -1199,7 +1199,6 @@ struct mem_cgroup *mem_cgroup_iter(struct mem_cgroup *root, mz = mem_cgroup_zoneinfo(root, nid, zid); iter = &mz->reclaim_iter[reclaim->priority]; - last_visited = iter->last_visited; if (prev && reclaim->generation != iter->generation) { iter->last_visited = NULL; goto out_unlock; @@ -1218,13 +1217,12 @@ struct mem_cgroup *mem_cgroup_iter(struct mem_cgroup *root, * is alive. */ dead_count = atomic_read(&root->dead_count); - smp_rmb(); - last_visited = iter->last_visited; - if (last_visited) { - if ((dead_count != iter->last_dead_count) || - !css_tryget(&last_visited->css)) { + if (dead_count == iter->last_dead_count) { + smp_rmb(); + last_visited = iter->last_visited; + if (last_visited && + !css_tryget(&last_visited->css)) last_visited = NULL; - } } }