Index: linux-2.6.21-rc1/mm/slub.c =================================================================== --- linux-2.6.21-rc1.orig/mm/slub.c 2007-02-25 19:31:05.000000000 -0800 +++ linux-2.6.21-rc1/mm/slub.c 2007-02-25 20:27:40.000000000 -0800 @@ -1433,21 +1433,18 @@ struct kmem_cache *kmem_cache_create(con if (s) { printk(KERN_INFO "SLUB: Merging slab_cache %s size %d" - " with slab_cache %s\n", - name, (int)size, s->name); + " with slab_cache %s size %d\n", + name, (int)size, s->name, s->size); return kmem_cache_dup(s, GFP_KERNEL, name); } s = kmalloc(sizeof(struct kmem_cache), GFP_KERNEL); - if (!s) - return NULL; + if (s && kmem_cache_open(s, GFP_KERNEL, name, size, align, + flags, ctor, dtor)) + return s; - if (!kmem_cache_open(s, GFP_KERNEL, name, size, align, - flags, ctor, dtor)) { - kfree(s); - return NULL; - } - return s; + kfree(s); + return NULL; } EXPORT_SYMBOL(kmem_cache_create);