diff --git a/[refs] b/[refs] index 193574862b12..f0cea37c4610 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: aac9e28d2f3d3c1eacc4114d685864a2a6423b80 +refs/heads/master: 05aa345034de6ae9c77fb93f6a796013641d57d5 diff --git a/trunk/mm/slub.c b/trunk/mm/slub.c index bcdb2c8941a5..84f59fde1a10 100644 --- a/trunk/mm/slub.c +++ b/trunk/mm/slub.c @@ -1511,26 +1511,8 @@ static void *__slab_alloc(struct kmem_cache *s, if (new) { c = get_cpu_slab(s, smp_processor_id()); - if (c->page) { - /* - * Someone else populated the cpu_slab while we - * enabled interrupts, or we have gotten scheduled - * on another cpu. The page may not be on the - * requested node even if __GFP_THISNODE was - * specified. So we need to recheck. - */ - if (node_match(c, node)) { - /* - * Current cpuslab is acceptable and we - * want the current one since its cache hot - */ - discard_slab(s, new); - slab_lock(c->page); - goto load_freelist; - } - /* New slab does not fit our expectations */ + if (c->page) flush_slab(s, c); - } slab_lock(new); SetSlabFrozen(new); c->page = new;