--- mm/slub.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) Index: linux-2.6/mm/slub.c =================================================================== --- linux-2.6.orig/mm/slub.c 2007-08-08 23:22:15.000000000 -0700 +++ linux-2.6/mm/slub.c 2007-08-08 23:38:58.000000000 -0700 @@ -2549,8 +2549,10 @@ int kmem_cache_isolate_slab(struct page * This is necessary to make sure that the page does not vanish * from under us before we are able to check the result. */ - if (!get_page_unless_zero(page)) + if (!get_page_unless_zero(page)) { + printk(KERN_ERR "isolate %p zero ref\n", page); return rc; + } local_irq_save(flags); slab_lock(page); @@ -2564,6 +2566,8 @@ int kmem_cache_isolate_slab(struct page if (!PageSlab(page) || SlabFrozen(page) || !page->inuse) { slab_unlock(page); put_page(page); + printk(KERN_ERR "isolate faillock %p flags=%lx %s\n", + page, page->flags, PageSlab(page)?page->slab->name:"--"); goto out; }