diff options
Diffstat (limited to 'lib/kobject.c')
-rw-r--r-- | lib/kobject.c | 18 |
1 files changed, 5 insertions, 13 deletions
diff --git a/lib/kobject.c b/lib/kobject.c index fbf0ae282376..ae6bb900bfb6 100644 --- a/lib/kobject.c +++ b/lib/kobject.c | |||
@@ -387,6 +387,11 @@ EXPORT_SYMBOL_GPL(kobject_init_and_add); | |||
387 | * kobject_rename - change the name of an object | 387 | * kobject_rename - change the name of an object |
388 | * @kobj: object in question. | 388 | * @kobj: object in question. |
389 | * @new_name: object's new name | 389 | * @new_name: object's new name |
390 | * | ||
391 | * It is the responsibility of the caller to provide mutual | ||
392 | * exclusion between two different calls of kobject_rename | ||
393 | * on the same kobject and to ensure that new_name is valid and | ||
394 | * won't conflict with other kobjects. | ||
390 | */ | 395 | */ |
391 | int kobject_rename(struct kobject *kobj, const char *new_name) | 396 | int kobject_rename(struct kobject *kobj, const char *new_name) |
392 | { | 397 | { |
@@ -401,19 +406,6 @@ int kobject_rename(struct kobject *kobj, const char *new_name) | |||
401 | if (!kobj->parent) | 406 | if (!kobj->parent) |
402 | return -EINVAL; | 407 | return -EINVAL; |
403 | 408 | ||
404 | /* see if this name is already in use */ | ||
405 | if (kobj->kset) { | ||
406 | struct kobject *temp_kobj; | ||
407 | temp_kobj = kset_find_obj(kobj->kset, new_name); | ||
408 | if (temp_kobj) { | ||
409 | printk(KERN_WARNING "kobject '%s' cannot be renamed " | ||
410 | "to '%s' as '%s' is already in existence.\n", | ||
411 | kobject_name(kobj), new_name, new_name); | ||
412 | kobject_put(temp_kobj); | ||
413 | return -EINVAL; | ||
414 | } | ||
415 | } | ||
416 | |||
417 | devpath = kobject_get_path(kobj, GFP_KERNEL); | 409 | devpath = kobject_get_path(kobj, GFP_KERNEL); |
418 | if (!devpath) { | 410 | if (!devpath) { |
419 | error = -ENOMEM; | 411 | error = -ENOMEM; |