Commit 7f82af97 authored by Mel Gorman's avatar Mel Gorman Committed by Linus Torvalds

page allocator: check only once if the zonelist is suitable for the allocation

It is possible with __GFP_THISNODE that no zones are suitable.  This patch
makes sure the check is only made once.
Signed-off-by: default avatarMel Gorman <mel@csn.ul.ie>
Reviewed-by: default avatarChristoph Lameter <cl@linux-foundation.org>
Reviewed-by: default avatarKOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Reviewed-by: default avatarPekka Enberg <penberg@cs.helsinki.fi>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Nick Piggin <nickpiggin@yahoo.com.au>
Cc: Dave Hansen <dave@linux.vnet.ibm.com>
Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 6484eb3e
...@@ -1483,9 +1483,8 @@ __alloc_pages_nodemask(gfp_t gfp_mask, unsigned int order, ...@@ -1483,9 +1483,8 @@ __alloc_pages_nodemask(gfp_t gfp_mask, unsigned int order,
if (should_fail_alloc_page(gfp_mask, order)) if (should_fail_alloc_page(gfp_mask, order))
return NULL; return NULL;
restart: /* the list of zones suitable for gfp_mask */
z = zonelist->_zonerefs; /* the list of zones suitable for gfp_mask */ z = zonelist->_zonerefs;
if (unlikely(!z->zone)) { if (unlikely(!z->zone)) {
/* /*
* Happens if we have an empty zonelist as a result of * Happens if we have an empty zonelist as a result of
...@@ -1494,6 +1493,7 @@ __alloc_pages_nodemask(gfp_t gfp_mask, unsigned int order, ...@@ -1494,6 +1493,7 @@ __alloc_pages_nodemask(gfp_t gfp_mask, unsigned int order,
return NULL; return NULL;
} }
restart:
page = get_page_from_freelist(gfp_mask|__GFP_HARDWALL, nodemask, order, page = get_page_from_freelist(gfp_mask|__GFP_HARDWALL, nodemask, order,
zonelist, high_zoneidx, ALLOC_WMARK_LOW|ALLOC_CPUSET); zonelist, high_zoneidx, ALLOC_WMARK_LOW|ALLOC_CPUSET);
if (page) if (page)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment