]> err.no Git - linux-2.6/blobdiff - kernel/user.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
[linux-2.6] / kernel / user.c
index 5a106f3fdf05f1c7239d3911de12618a77beff5b..ab4fd706993b1e22dccae4d3fafcf0cf0f48fbb3 100644 (file)
@@ -181,13 +181,12 @@ static int uids_user_create(struct user_struct *up)
        int error;
 
        memset(kobj, 0, sizeof(struct kobject));
-       kobj->ktype = &uids_ktype;
        kobj->kset = uids_kset;
-       kobject_init(kobj);
-       kobject_set_name(&up->kobj, "%d", up->uid);
-       error = kobject_add(kobj);
-       if (error)
+       error = kobject_init_and_add(kobj, &uids_ktype, NULL, "%d", up->uid);
+       if (error) {
+               kobject_put(kobj);
                goto done;
+       }
 
        kobject_uevent(kobj, KOBJ_ADD);
 done:
@@ -201,7 +200,7 @@ done:
  */
 int __init uids_sysfs_init(void)
 {
-       uids_kset = kset_create_and_add("uids", NULL, &kernel_kset->kobj);
+       uids_kset = kset_create_and_add("uids", NULL, kernel_kobj);
        if (!uids_kset)
                return -ENOMEM;