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<