forked from Minki/linux
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: Mel Gorman <mel@csn.ul.ie> Reviewed-by: Christoph Lameter <cl@linux-foundation.org> Reviewed-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> Reviewed-by: Pekka 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: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
6484eb3e2a
commit
7f82af9742
@ -1483,9 +1483,8 @@ __alloc_pages_nodemask(gfp_t gfp_mask, unsigned int order,
|
||||
if (should_fail_alloc_page(gfp_mask, order))
|
||||
return NULL;
|
||||
|
||||
restart:
|
||||
z = zonelist->_zonerefs; /* the list of zones suitable for gfp_mask */
|
||||
|
||||
/* the list of zones suitable for gfp_mask */
|
||||
z = zonelist->_zonerefs;
|
||||
if (unlikely(!z->zone)) {
|
||||
/*
|
||||
* Happens if we have an empty zonelist as a result of
|
||||
@ -1494,6 +1493,7 @@ restart:
|
||||
return NULL;
|
||||
}
|
||||
|
||||
restart:
|
||||
page = get_page_from_freelist(gfp_mask|__GFP_HARDWALL, nodemask, order,
|
||||
zonelist, high_zoneidx, ALLOC_WMARK_LOW|ALLOC_CPUSET);
|
||||
if (page)
|
||||
|
Loading…
Reference in New Issue
Block a user