From ed72fa7b431e933d0a409a93515fb49e47e514bd Mon Sep 17 00:00:00 2001 From: Christoph Lameter Date: Sat, 21 Oct 2006 10:24:16 -0700 Subject: [PATCH] --- yaml --- r: 40114 b: refs/heads/master c: aedb0eb107961a234f7c38e53da65a8f7ea992a9 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/mm/slab.c | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index 8dcf749c40df..25240c4bcb5c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 7516795739bd53175629b90fab0ad488d7a6a9f7 +refs/heads/master: aedb0eb107961a234f7c38e53da65a8f7ea992a9 diff --git a/trunk/mm/slab.c b/trunk/mm/slab.c index 266449d604bd..84c631f30741 100644 --- a/trunk/mm/slab.c +++ b/trunk/mm/slab.c @@ -3152,12 +3152,15 @@ void *fallback_alloc(struct kmem_cache *cache, gfp_t flags) struct zone **z; void *obj = NULL; - for (z = zonelist->zones; *z && !obj; z++) + for (z = zonelist->zones; *z && !obj; z++) { + int nid = zone_to_nid(*z); + if (zone_idx(*z) <= ZONE_NORMAL && - cpuset_zone_allowed(*z, flags)) + cpuset_zone_allowed(*z, flags) && + cache->nodelists[nid]) obj = __cache_alloc_node(cache, - flags | __GFP_THISNODE, - zone_to_nid(*z)); + flags | __GFP_THISNODE, nid); + } return obj; }