diff options
author | Dmitriy Monakhov <dmonakhov@sw.ru> | 2007-03-03 08:11:21 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2007-03-09 18:32:58 -0500 |
commit | 9e993efb0da827634778554070f3c3ec4bdade33 (patch) | |
tree | 6852c36270693571cac9a5802a067e9c7bae3452 /lib | |
parent | a2807dbcbd681e1f36e813fb26e2f24d15018b91 (diff) |
kobject: new_device->kref wasn't putted after error in kobject_move()
If error happen we jump to "out" label, in this case new_device not yet
became the parent but it wasn't putted.
Signed-off-by: Monakhov Dmitriy <dmonakhov@openvz.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/kobject.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/kobject.c b/lib/kobject.c index f4f6176dcd12..057921c5945a 100644 --- a/lib/kobject.c +++ b/lib/kobject.c | |||
@@ -385,9 +385,11 @@ int kobject_move(struct kobject *kobj, struct kobject *new_parent) | |||
385 | goto out; | 385 | goto out; |
386 | old_parent = kobj->parent; | 386 | old_parent = kobj->parent; |
387 | kobj->parent = new_parent; | 387 | kobj->parent = new_parent; |
388 | new_parent = NULL; | ||
388 | kobject_put(old_parent); | 389 | kobject_put(old_parent); |
389 | kobject_uevent_env(kobj, KOBJ_MOVE, envp); | 390 | kobject_uevent_env(kobj, KOBJ_MOVE, envp); |
390 | out: | 391 | out: |
392 | kobject_put(new_parent); | ||
391 | kobject_put(kobj); | 393 | kobject_put(kobj); |
392 | kfree(devpath_string); | 394 | kfree(devpath_string); |
393 | kfree(devpath); | 395 | kfree(devpath); |