mm/slab: Fix a kmemleak in kmem_cache_destroy()
[sfrench/cifs-2.6.git] / mm / slab_common.c
index e19544043fdf440ac0322ecc06b333b8c6c3e5cb..7d60cfc2b30f68c83abf218206c050dc5ecf833d 100644 (file)
@@ -404,8 +404,12 @@ EXPORT_SYMBOL(kmem_cache_create);
  */
 static void kmem_cache_release(struct kmem_cache *s)
 {
-       sysfs_slab_unlink(s);
-       sysfs_slab_release(s);
+       if (slab_state >= FULL) {
+               sysfs_slab_unlink(s);
+               sysfs_slab_release(s);
+       } else {
+               slab_kmem_cache_release(s);
+       }
 }
 #else
 static void kmem_cache_release(struct kmem_cache *s)