summaryrefslogtreecommitdiff
path: root/lib/kobject.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/kobject.c')
-rw-r--r--lib/kobject.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/lib/kobject.c b/lib/kobject.c
index 661bf12797cf..e2378597b989 100644
--- a/lib/kobject.c
+++ b/lib/kobject.c
@@ -252,14 +252,15 @@ int kobject_add(struct kobject * kobj)
if (kobj->kset) {
down_write(&kobj->kset->subsys->rwsem);
- if (parent)
- list_add_tail(&kobj->entry,&parent->entry);
- else {
- list_add_tail(&kobj->entry,&kobj->kset->list);
- kobj->parent = kobject_get(&kobj->kset->kobj);
- }
+
+ if (!parent)
+ parent = kobject_get(&kobj->kset->kobj);
+
+ list_add_tail(&kobj->entry,&kobj->kset->list);
up_write(&kobj->kset->subsys->rwsem);
}
+ kobj->parent = parent;
+
error = create_dir(kobj);
if (error)
unlink(kobj);