sysfs: add sysfs_dirent->s_name
Add s_name to sysfs_dirent. This is to further reduce dependency to the associated dentry. Name is copied for directories and symlinks but not for attributes. Where possible, name dereferences are converted to use sd->s_name. sysfs_symlink->link_name and sysfs_get_name() are unused now and removed. This change allows symlink to be implemented using sysfs_dirent tree proper, which is the last remaining dentry-dependent sysfs walk. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
13b3086d2e
commit
0c096b507f
@@ -57,14 +57,9 @@ static int sysfs_add_link(struct dentry * parent, const char * name, struct kobj
|
||||
if (!sl)
|
||||
goto err_out;
|
||||
|
||||
sl->link_name = kmalloc(strlen(name) + 1, GFP_KERNEL);
|
||||
if (!sl->link_name)
|
||||
goto err_out;
|
||||
|
||||
strcpy(sl->link_name, name);
|
||||
sl->target_kobj = kobject_get(target);
|
||||
|
||||
sd = sysfs_new_dirent(sl, S_IFLNK|S_IRWXUGO, SYSFS_KOBJ_LINK);
|
||||
sd = sysfs_new_dirent(name, sl, S_IFLNK|S_IRWXUGO, SYSFS_KOBJ_LINK);
|
||||
if (!sd)
|
||||
goto err_out;
|
||||
sysfs_attach_dirent(sd, parent_sd, NULL);
|
||||
@@ -74,7 +69,6 @@ static int sysfs_add_link(struct dentry * parent, const char * name, struct kobj
|
||||
err_out:
|
||||
if (sl) {
|
||||
kobject_put(sl->target_kobj);
|
||||
kfree(sl->link_name);
|
||||
kfree(sl);
|
||||
}
|
||||
return error;
|
||||
|
Reference in New Issue
Block a user