From 83ccb0b6032a30694a6a3ec392633fced321ff59 Mon Sep 17 00:00:00 2001 From: Hillf Danton Date: Wed, 21 Mar 2012 16:33:50 -0700 Subject: [PATCH] --- yaml --- r: 292621 b: refs/heads/master c: c38446cc65e1f2b3eb8630c53943b94c4f65f670 h: refs/heads/master i: 292619: c5e6f91c089f60eb30514fca5d6b4a7c2d009be6 v: v3 --- [refs] | 2 +- trunk/mm/vmscan.c | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 641700c6906f..c2d84ed517fb 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 69c978232aaa99476f9bd002c2a29a84fa3779b5 +refs/heads/master: c38446cc65e1f2b3eb8630c53943b94c4f65f670 diff --git a/trunk/mm/vmscan.c b/trunk/mm/vmscan.c index 61a66881235d..8dfa59866af2 100644 --- a/trunk/mm/vmscan.c +++ b/trunk/mm/vmscan.c @@ -2112,7 +2112,12 @@ static void shrink_mem_cgroup_zone(int priority, struct mem_cgroup_zone *mz, * with multiple processes reclaiming pages, the total * freeing target can get unreasonably large. */ - if (nr_reclaimed >= nr_to_reclaim && priority < DEF_PRIORITY) + if (nr_reclaimed >= nr_to_reclaim) + nr_to_reclaim = 0; + else + nr_to_reclaim -= nr_reclaimed; + + if (!nr_to_reclaim && priority < DEF_PRIORITY) break; } blk_finish_plug(&plug);