Linux Headquarters
[ Register ]
[ About us ] [ Home Page ]

Advertisement
[ Kernel ] [ Documentation ] [ Links ] [ Books ]

Advertisement

Kernel v2.6.24-git7 /mm/slub.c

Filename:/mm/slub.c
Lines Added:11
Lines Deleted:12
Also changed in: (Previous) 2.6.24-git6  2.6.24-git5  2.6.24-git4  2.6.24-git3  2.6.24-git2  2.6.24-git1 
(Following) 2.6.24-git8  2.6.24-git9  2.6.24-git10  2.6.24-git11  2.6.24-git12  2.6.24-git13 

Location
[  2.6.24-git7
  [  mm
     o  slub.c

Patch

diff --git a/mm/slub.c b/mm/slub.c
index 474945e..5cc4b7d 100644
--- 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_ktype, &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 {
       /*
@@ -4025,12 +4025,12 @@ static int sysfs_slab_add(struct kmem_cache *s)
       name = create_unique_id(s);
    }
 
-   kobj_set_kset_s(s, slab_subsys);
-   kobject_set_name(&s->kobj, name);
-   kobject_init(&s->kobj);
-   err = kobject_add(&s->kobj);
-   if (err)
+   s->kobj.kset = slab_kset;
+   err = kobject_init_and_add(&s->kobj, &slab_ktype, NULL, name);
+   if (err) {
+      kobject_put(&s->kobj);
       return err;
+   }
 
    err = sysfs_create_group(&s->kobj, &slab_attr_group);
    if (err)
@@ -4070,9 +4070,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);
@@ -4091,8 +4090,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, kernel_kobj);
+   if (!slab_kset) {
       printk(KERN_ERR "Cannot register slab subsystem.\n");
       return -ENOSYS;
    }


Comments: webmaster (at) linuxhq.com.
Advertising: banners (at) linuxhq.com.
Compilation ©1998-2008 Linux Headquarters, Inc.