slub: release kobject if sysfs_create_group failed in sysfs_slab_add

When CONFIG_SLUB_DEBUG is enabled, sysfs_slab_add should unlink and put the
kobject if sysfs_create_group failed. Otherwise, sysfs_slab_add returns error
then free kmem_cache s, thus memory of s->kobj is leaked.

Acked-by: Christoph Lameter <cl@linux-foundation.org>
Signed-off-by: Xiaotian Feng <dfeng@redhat.com>
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
This commit is contained in:
Xiaotian Feng 2009-07-22 11:28:53 +08:00 committed by Pekka Enberg
parent acdfcd04d9
commit 5788d8ad6c
1 changed files with 4 additions and 1 deletions

View File

@ -4593,8 +4593,11 @@ static int sysfs_slab_add(struct kmem_cache *s)
} }
err = sysfs_create_group(&s->kobj, &slab_attr_group); err = sysfs_create_group(&s->kobj, &slab_attr_group);
if (err) if (err) {
kobject_del(&s->kobj);
kobject_put(&s->kobj);
return err; return err;
}
kobject_uevent(&s->kobj, KOBJ_ADD); kobject_uevent(&s->kobj, KOBJ_ADD);
if (!unmergeable) { if (!unmergeable) {
/* Setup first alias */ /* Setup first alias */