From 28c1a082a96043993560ab6aa1f3de874daf5f1b Mon Sep 17 00:00:00 2001 From: Mel Gorman Date: Mon, 29 Apr 2013 15:07:57 -0700 Subject: [PATCH] --- yaml --- r: 365419 b: refs/heads/master c: fed2719e7a8612471bd17113ed326d38df434f17 h: refs/heads/master i: 365417: 62f488eea41cc86c32b9094a2b96ffae83c1c9d0 365415: 1df9ffb927a4c895bd213fdc89619fd442ed166c v: v3 --- [refs] | 2 +- trunk/mm/page_alloc.c | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index c78bb6a48571..a46f13adbe2e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 8e2cdbcb86b0abefc3d07922c48edb01fece3c56 +refs/heads/master: fed2719e7a8612471bd17113ed326d38df434f17 diff --git a/trunk/mm/page_alloc.c b/trunk/mm/page_alloc.c index 7350986bbf99..b54c5cbf0200 100644 --- a/trunk/mm/page_alloc.c +++ b/trunk/mm/page_alloc.c @@ -1942,9 +1942,24 @@ get_page_from_freelist(gfp_t gfp_mask, nodemask_t *nodemask, unsigned int order, continue; default: /* did we reclaim enough */ - if (!zone_watermark_ok(zone, order, mark, + if (zone_watermark_ok(zone, order, mark, classzone_idx, alloc_flags)) + goto try_this_zone; + + /* + * Failed to reclaim enough to meet watermark. + * Only mark the zone full if checking the min + * watermark or if we failed to reclaim just + * 1<