summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--mm/vmscan.c9
1 files changed, 1 insertions, 8 deletions
diff --git a/mm/vmscan.c b/mm/vmscan.c
index 65824df165e3..7768aca74d1d 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -756,17 +756,10 @@ shrink_zone(struct zone *zone, int max_scan, unsigned int gfp_mask,
*/
ratio = (unsigned long)SWAP_CLUSTER_MAX * zone->nr_active /
((zone->nr_inactive | 1) * 2);
+
atomic_add(ratio+1, &zone->nr_scan_active);
count = atomic_read(&zone->nr_scan_active);
if (count >= SWAP_CLUSTER_MAX) {
- /*
- * Don't try to bring down too many pages in one attempt.
- * If this fails, the caller will increase `priority' and
- * we'll try again, with an increased chance of reclaiming
- * mapped memory.
- */
- if (count > SWAP_CLUSTER_MAX * 4)
- count = SWAP_CLUSTER_MAX * 4;
atomic_set(&zone->nr_scan_active, 0);
refill_inactive_zone(zone, count, ps);
}