vmscan: clip swap_cluster_max in shrink_all_memory()
[safe/jmp/linux-2.6] / mm / vmscan.c
index b15dcbb..9578063 100644 (file)
@@ -2109,7 +2109,6 @@ unsigned long shrink_all_memory(unsigned long nr_pages)
        struct scan_control sc = {
                .gfp_mask = GFP_KERNEL,
                .may_unmap = 0,
-               .swap_cluster_max = nr_pages,
                .may_writepage = 1,
                .isolate_pages = isolate_pages_global,
        };
@@ -2151,6 +2150,7 @@ unsigned long shrink_all_memory(unsigned long nr_pages)
                        unsigned long nr_to_scan = nr_pages - sc.nr_reclaimed;
 
                        sc.nr_scanned = 0;
+                       sc.swap_cluster_max = nr_to_scan;
                        shrink_all_zones(nr_to_scan, prio, pass, &sc);
                        if (sc.nr_reclaimed >= nr_pages)
                                goto out;