aboutsummaryrefslogtreecommitdiffstats
path: root/fs/sysfs/symlink.c
diff options
context:
space:
mode:
authorTejun Heo <htejun@gmail.com>2007-06-13 14:45:14 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2007-07-11 19:09:04 -0400
commita26cd7226c24c3be5dd5f48a74832fe64beb8489 (patch)
tree0dfb4a15d800494a06a4ddf83c4d33812c404fac /fs/sysfs/symlink.c
parent996b73764e9bb9d5e751fd15b130ba38637d66a8 (diff)
sysfs: consolidate sysfs_dirent creation functions
Currently there are four functions to create sysfs_dirent - __sysfs_new_dirent(), sysfs_new_dirent(), __sysfs_make_dirent() and sysfs_make_dirent(). Other than sysfs_make_dirent(), no function has two users if calls to implement other functions are excluded. This patch consolidates sysfs_dirent creation functions into the following two. * sysfs_new_dirent() : allocate and initialize * sysfs_attach_dirent() : attach to sysfs_dirent hierarchy and/or associate with dentry This simplifies interface and gives callers more flexibility. This is in preparation of object reference simplification. Signed-off-by: Tejun Heo <htejun@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'fs/sysfs/symlink.c')
-rw-r--r--fs/sysfs/symlink.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/fs/sysfs/symlink.c b/fs/sysfs/symlink.c
index b463f17f6638..d96bb9cbc9d4 100644
--- a/fs/sysfs/symlink.c
+++ b/fs/sysfs/symlink.c
@@ -49,6 +49,7 @@ static int sysfs_add_link(struct dentry * parent, const char * name, struct kobj
49{ 49{
50 struct sysfs_dirent * parent_sd = parent->d_fsdata; 50 struct sysfs_dirent * parent_sd = parent->d_fsdata;
51 struct sysfs_symlink * sl; 51 struct sysfs_symlink * sl;
52 struct sysfs_dirent * sd;
52 int error; 53 int error;
53 54
54 error = -ENOMEM; 55 error = -ENOMEM;
@@ -63,10 +64,10 @@ static int sysfs_add_link(struct dentry * parent, const char * name, struct kobj
63 strcpy(sl->link_name, name); 64 strcpy(sl->link_name, name);
64 sl->target_kobj = kobject_get(target); 65 sl->target_kobj = kobject_get(target);
65 66
66 error = sysfs_make_dirent(parent_sd, NULL, sl, S_IFLNK|S_IRWXUGO, 67 sd = sysfs_new_dirent(sl, S_IFLNK|S_IRWXUGO, SYSFS_KOBJ_LINK);
67 SYSFS_KOBJ_LINK); 68 if (!sd)
68 if (error)
69 goto err_out; 69 goto err_out;
70 sysfs_attach_dirent(sd, parent_sd, NULL);
70 71
71 return 0; 72 return 0;
72 73