--- mm/slub.c | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) Index: linux-2.6/mm/slub.c =================================================================== --- linux-2.6.orig/mm/slub.c 2007-11-03 11:49:20.000000000 -0700 +++ linux-2.6/mm/slub.c 2007-11-03 11:49:29.000000000 -0700 @@ -1529,25 +1529,8 @@ static noinline unsigned long get_new_sl return 0; *pc = 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, page); - return slab_lock(c->page); - } - /* New slab does not fit our expectations */ + if (c->page) flush_slab(s, c); - } c->page = page; return slab_lock(page) | FROZEN; }