kobject: check for duplicate names in kobject_rename
This should catch any duplicate names before we try to tell sysfs to rename the object. This happens a lot with older versions of udev and the network rename scripts. Cc: David Miller <davem@davemloft.net> Cc: Kay Sievers <kay.sievers@vrfy.org> Cc: Rafael J. Wysocki <rjw@sisk.pl> Cc: Tejun Heo <htejun@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
fcd239d3d5
commit
34358c26a2
1 changed files with 13 additions and 0 deletions
|
@ -308,6 +308,19 @@ int kobject_rename(struct kobject * kobj, const char *new_name)
|
|||
if (!kobj->parent)
|
||||
return -EINVAL;
|
||||
|
||||
/* see if this name is already in use */
|
||||
if (kobj->kset) {
|
||||
struct kobject *temp_kobj;
|
||||
temp_kobj = kset_find_obj(kobj->kset, new_name);
|
||||
if (temp_kobj) {
|
||||
printk(KERN_WARNING "kobject '%s' can not be renamed "
|
||||
"to '%s' as '%s' is already in existance.\n",
|
||||
kobject_name(kobj), new_name, new_name);
|
||||
kobject_put(temp_kobj);
|
||||
return -EINVAL;
|
||||
}
|
||||
}
|
||||
|
||||
devpath = kobject_get_path(kobj, GFP_KERNEL);
|
||||
if (!devpath) {
|
||||
error = -ENOMEM;
|
||||
|
|
Loading…
Reference in a new issue