On Mon, 2009-09-14 at 11:18 +0800, Danny Feng wrote:err, you're right... let me try to find why. It's strange, if SLUB_DEBUG is not set, sysfs_slab_remove is just to free kmem_cache s. So I think if SLUB_DEBUG is not set, we also have the same issue....diff --git a/mm/slub.c b/mm/slub.c
index b627675..40e12d5 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -3337,8 +3337,8 @@ struct kmem_cache *kmem_cache_create(const char
*name, size_t size,
goto err;
}
return s;
- }
- kfree(s);
+ } else
+ kfree(s);
}
up_write(&slub_lock);
Doesn't the return inside the conditional take care of this? I'll give
it a try in the morning, but I don't see how this can solve the
problem....
-Eric