]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
mm: page_alloc: do not treat a zone that cannot be used for dirty pages as "full"
authorMel Gorman <mgorman@suse.de>
Thu, 22 May 2014 00:43:18 +0000 (10:43 +1000)
committerStephen Rothwell <sfr@canb.auug.org.au>
Thu, 22 May 2014 00:43:18 +0000 (10:43 +1000)
If a zone cannot be used for a dirty page then it gets marked "full" which
is cached in the zlc and later potentially skipped by allocation requests
that have nothing to do with dirty zones.

Signed-off-by: Mel Gorman <mgorman@suse.de>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Reviewed-by: Rik van Riel <riel@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/page_alloc.c

index 78161b600a66bb87be1eeedafb2d9e845a50d5e6..0f158082771e8436880b290df7b944ce3284d2db 100644 (file)
@@ -1967,7 +1967,7 @@ zonelist_scan:
                 */
                if ((alloc_flags & ALLOC_WMARK_LOW) &&
                    (gfp_mask & __GFP_WRITE) && !zone_dirty_ok(zone))
-                       goto this_zone_full;
+                       continue;
 
                mark = zone->watermark[alloc_flags & ALLOC_WMARK_MASK];
                if (!zone_watermark_ok(zone, order, mark,