driver core: Suppress sysfs warnings for device_rename().
driver core: Suppress sysfs warnings for device_rename(). Renaming network devices to an already existing name is not something we want sysfs to print a scary warning for, since the callers can deal with this correctly. So let's introduce sysfs_create_link_nowarn() which gets rid of the common warning. Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
0ad1d6f37c
commit
36ce6dad6e
@@ -19,13 +19,8 @@
|
||||
|
||||
#include "sysfs.h"
|
||||
|
||||
/**
|
||||
* sysfs_create_link - create symlink between two objects.
|
||||
* @kobj: object whose directory we're creating the link in.
|
||||
* @target: object we're pointing to.
|
||||
* @name: name of the symlink.
|
||||
*/
|
||||
int sysfs_create_link(struct kobject * kobj, struct kobject * target, const char * name)
|
||||
static int sysfs_do_create_link(struct kobject *kobj, struct kobject *target,
|
||||
const char *name, int warn)
|
||||
{
|
||||
struct sysfs_dirent *parent_sd = NULL;
|
||||
struct sysfs_dirent *target_sd = NULL;
|
||||
@@ -65,7 +60,10 @@ int sysfs_create_link(struct kobject * kobj, struct kobject * target, const char
|
||||
target_sd = NULL; /* reference is now owned by the symlink */
|
||||
|
||||
sysfs_addrm_start(&acxt, parent_sd);
|
||||
error = sysfs_add_one(&acxt, sd);
|
||||
if (warn)
|
||||
error = sysfs_add_one(&acxt, sd);
|
||||
else
|
||||
error = __sysfs_add_one(&acxt, sd);
|
||||
sysfs_addrm_finish(&acxt);
|
||||
|
||||
if (error)
|
||||
@@ -79,6 +77,33 @@ int sysfs_create_link(struct kobject * kobj, struct kobject * target, const char
|
||||
return error;
|
||||
}
|
||||
|
||||
/**
|
||||
* sysfs_create_link - create symlink between two objects.
|
||||
* @kobj: object whose directory we're creating the link in.
|
||||
* @target: object we're pointing to.
|
||||
* @name: name of the symlink.
|
||||
*/
|
||||
int sysfs_create_link(struct kobject *kobj, struct kobject *target,
|
||||
const char *name)
|
||||
{
|
||||
return sysfs_do_create_link(kobj, target, name, 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* sysfs_create_link_nowarn - create symlink between two objects.
|
||||
* @kobj: object whose directory we're creating the link in.
|
||||
* @target: object we're pointing to.
|
||||
* @name: name of the symlink.
|
||||
*
|
||||
* This function does the same as sysf_create_link(), but it
|
||||
* doesn't warn if the link already exists.
|
||||
*/
|
||||
int sysfs_create_link_nowarn(struct kobject *kobj, struct kobject *target,
|
||||
const char *name)
|
||||
{
|
||||
return sysfs_do_create_link(kobj, target, name, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* sysfs_remove_link - remove symlink in object's directory.
|
||||
* @kobj: object we're acting for.
|
||||
|
Reference in New Issue
Block a user