--- mm/slub.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Index: linux-2.6/mm/slub.c =================================================================== --- linux-2.6.orig/mm/slub.c 2008-02-04 17:33:54.763613764 -0800 +++ linux-2.6/mm/slub.c 2008-02-04 17:35:10.965328035 -0800 @@ -1528,7 +1528,7 @@ static void *__slab_alloc(struct kmem_ca goto new_slab; slab_lock(c->page); - if (unlikely(!node_match(c, node))) + if (unlikely(!node_match(c, node)) || s->objects - s->inuse < 3) goto another_slab; stat(c, ALLOC_REFILL); load_freelist: