kset: convert slub to use kset_create
authorGreg Kroah-Hartman <gregkh@suse.de>
Thu, 1 Nov 2007 15:29:06 +0000 (09:29 -0600)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 25 Jan 2008 04:40:15 +0000 (20:40 -0800)
Dynamically create the kset instead of declaring it statically.

Cc: Kay Sievers <kay.sievers@vrfy.org>
Cc: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
mm/slub.c

index 40bdf41035e5122dc744f55a6b83ed572dfbeb2f..886131c5b5ca06465f82bcc1407305b6286451d0 100644 (file)
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -3962,7 +3962,7 @@ static struct kset_uevent_ops slab_uevent_ops = {
        .filter = uevent_filter,
 };
 
-static decl_subsys(slab, &slab_uevent_ops);
+static struct kset *slab_kset;
 
 #define ID_STR_LENGTH 64
 
@@ -4015,7 +4015,7 @@ static int sysfs_slab_add(struct kmem_cache *s)
                 * This is typically the case for debug situations. In that
                 * case we can catch duplicate names easily.
                 */
-               sysfs_remove_link(&slab_subsys.kobj, s->name);
+               sysfs_remove_link(&slab_kset->kobj, s->name);
                name = s->name;
        } else {
                /*
@@ -4026,7 +4026,7 @@ static int sysfs_slab_add(struct kmem_cache *s)
        }
 
        kobject_set_name(&s->kobj, name);
-       s->kobj.kset = &slab_subsys;
+       s->kobj.kset = slab_kset;
        s->kobj.ktype = &slab_ktype;
        kobject_init(&s->kobj);
        err = kobject_add(&s->kobj);
@@ -4071,9 +4071,8 @@ static int sysfs_slab_alias(struct kmem_cache *s, const char *name)
                /*
                 * If we have a leftover link then remove it.
                 */
-               sysfs_remove_link(&slab_subsys.kobj, name);
-               return sysfs_create_link(&slab_subsys.kobj,
-                                               &s->kobj, name);
+               sysfs_remove_link(&slab_kset->kobj, name);
+               return sysfs_create_link(&slab_kset->kobj, &s->kobj, name);
        }
 
        al = kmalloc(sizeof(struct saved_alias), GFP_KERNEL);
@@ -4092,8 +4091,8 @@ static int __init slab_sysfs_init(void)
        struct kmem_cache *s;
        int err;
 
-       err = subsystem_register(&slab_subsys);
-       if (err) {
+       slab_kset = kset_create_and_add("slab", &slab_uevent_ops, NULL);
+       if (!slab_kset) {
                printk(KERN_ERR "Cannot register slab subsystem.\n");
                return -ENOSYS;
        }