diff options
Diffstat (limited to 'mm')
-rw-r--r-- | mm/slub.c | 23 |
1 files changed, 11 insertions, 12 deletions
@@ -3962,7 +3962,7 @@ static struct kset_uevent_ops slab_uevent_ops = { | |||
3962 | .filter = uevent_filter, | 3962 | .filter = uevent_filter, |
3963 | }; | 3963 | }; |
3964 | 3964 | ||
3965 | static decl_subsys(slab, &slab_ktype, &slab_uevent_ops); | 3965 | static struct kset *slab_kset; |
3966 | 3966 | ||
3967 | #define ID_STR_LENGTH 64 | 3967 | #define ID_STR_LENGTH 64 |
3968 | 3968 | ||
@@ -4015,7 +4015,7 @@ static int sysfs_slab_add(struct kmem_cache *s) | |||
4015 | * This is typically the case for debug situations. In that | 4015 | * This is typically the case for debug situations. In that |
4016 | * case we can catch duplicate names easily. | 4016 | * case we can catch duplicate names easily. |
4017 | */ | 4017 | */ |
4018 | sysfs_remove_link(&slab_subsys.kobj, s->name); | 4018 | sysfs_remove_link(&slab_kset->kobj, s->name); |
4019 | name = s->name; | 4019 | name = s->name; |
4020 | } else { | 4020 | } else { |
4021 | /* | 4021 | /* |
@@ -4025,12 +4025,12 @@ static int sysfs_slab_add(struct kmem_cache *s) | |||
4025 | name = create_unique_id(s); | 4025 | name = create_unique_id(s); |
4026 | } | 4026 | } |
4027 | 4027 | ||
4028 | kobj_set_kset_s(s, slab_subsys); | 4028 | s->kobj.kset = slab_kset; |
4029 | kobject_set_name(&s->kobj, name); | 4029 | err = kobject_init_and_add(&s->kobj, &slab_ktype, NULL, name); |
4030 | kobject_init(&s->kobj); | 4030 | if (err) { |
4031 | err = kobject_add(&s->kobj); | 4031 | kobject_put(&s->kobj); |
4032 | if (err) | ||
4033 | return err; | 4032 | return err; |
4033 | } | ||
4034 | 4034 | ||
4035 | err = sysfs_create_group(&s->kobj, &slab_attr_group); | 4035 | err = sysfs_create_group(&s->kobj, &slab_attr_group); |
4036 | if (err) | 4036 | if (err) |
@@ -4070,9 +4070,8 @@ static int sysfs_slab_alias(struct kmem_cache *s, const char *name) | |||
4070 | /* | 4070 | /* |
4071 | * If we have a leftover link then remove it. | 4071 | * If we have a leftover link then remove it. |
4072 | */ | 4072 | */ |
4073 | sysfs_remove_link(&slab_subsys.kobj, name); | 4073 | sysfs_remove_link(&slab_kset->kobj, name); |
4074 | return sysfs_create_link(&slab_subsys.kobj, | 4074 | return sysfs_create_link(&slab_kset->kobj, &s->kobj, name); |
4075 | &s->kobj, name); | ||
4076 | } | 4075 | } |
4077 | 4076 | ||
4078 | al = kmalloc(sizeof(struct saved_alias), GFP_KERNEL); | 4077 | al = kmalloc(sizeof(struct saved_alias), GFP_KERNEL); |
@@ -4091,8 +4090,8 @@ static int __init slab_sysfs_init(void) | |||
4091 | struct kmem_cache *s; | 4090 | struct kmem_cache *s; |
4092 | int err; | 4091 | int err; |
4093 | 4092 | ||
4094 | err = subsystem_register(&slab_subsys); | 4093 | slab_kset = kset_create_and_add("slab", &slab_uevent_ops, kernel_kobj); |
4095 | if (err) { | 4094 | if (!slab_kset) { |
4096 | printk(KERN_ERR "Cannot register slab subsystem.\n"); | 4095 | printk(KERN_ERR "Cannot register slab subsystem.\n"); |
4097 | return -ENOSYS; | 4096 | return -ENOSYS; |
4098 | } | 4097 | } |