Index: linux-2.6.16-rc4-mm2/mm/slab.c =================================================================== --- linux-2.6.16-rc4-mm2.orig/mm/slab.c 2006-02-24 10:33:54.000000000 -0800 +++ linux-2.6.16-rc4-mm2/mm/slab.c 2006-02-27 12:54:52.000000000 -0800 @@ -2871,7 +2871,9 @@ static void *alternate_node_alloc(struct if (in_interrupt()) return NULL; nid_alloc = nid_here = numa_node_id(); - if (cpuset_do_slab_mem_spread() && (cachep->flags & SLAB_MEM_SPREAD)) + if (!cachep->flags & SLAB_MEM_SPREAD) + return NULL; + if (cpuset_do_slab_mem_spread()) nid_alloc = cpuset_mem_spread_node(); else if (current->mempolicy) nid_alloc = slab_node(current->mempolicy);