From 278c12af876175c41ac2e413bf01966a6ffbdba0 Mon Sep 17 00:00:00 2001 From: Christoph Lameter Date: Wed, 1 Jun 2011 12:25:56 -0500 Subject: [PATCH] --- yaml --- r: 261654 b: refs/heads/master c: fc59c05306fe1dcfa3fb8ba34ed45407fba4689c h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/mm/slub.c | 11 +++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/[refs] b/[refs] index 21c542bfca0c..49724d45ffba 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 80f08c191f6c9563641291bea80657a3b9faabf0 +refs/heads/master: fc59c05306fe1dcfa3fb8ba34ed45407fba4689c diff --git a/trunk/mm/slub.c b/trunk/mm/slub.c index cb6b0857e1a6..41a15c1d8068 100644 --- a/trunk/mm/slub.c +++ b/trunk/mm/slub.c @@ -1965,8 +1965,10 @@ static void *__slab_alloc(struct kmem_cache *s, gfp_t gfpflags, int node, if (!page) goto new_slab; - if (unlikely(!node_match(c, node))) - goto another_slab; + if (unlikely(!node_match(c, node))) { + deactivate_slab(s, c); + goto new_slab; + } stat(s, ALLOC_SLOWPATH); @@ -1986,7 +1988,7 @@ static void *__slab_alloc(struct kmem_cache *s, gfp_t gfpflags, int node, VM_BUG_ON(!page->frozen); if (unlikely(!object)) - goto another_slab; + goto new_slab; stat(s, ALLOC_REFILL); @@ -1995,9 +1997,6 @@ static void *__slab_alloc(struct kmem_cache *s, gfp_t gfpflags, int node, local_irq_restore(flags); return object; -another_slab: - deactivate_slab(s, c); - new_slab: page = get_partial(s, gfpflags, node); if (page) {