diff options
author | Tejun Heo <htejun@gmail.com> | 2007-06-13 14:45:15 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2007-07-11 19:09:04 -0400 |
commit | 0c096b507f15397da890051ee73de4266d3941fb (patch) | |
tree | c6b7d204a493157b3926bdb46500313eee9f9690 /fs/sysfs/sysfs.h | |
parent | 13b3086d2ea483cbcae5a4236446cecc082a72cf (diff) |
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>
Diffstat (limited to 'fs/sysfs/sysfs.h')
-rw-r--r-- | fs/sysfs/sysfs.h | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/fs/sysfs/sysfs.h b/fs/sysfs/sysfs.h index ce05d6fd7522..d34b008537d5 100644 --- a/fs/sysfs/sysfs.h +++ b/fs/sysfs/sysfs.h | |||
@@ -3,6 +3,7 @@ struct sysfs_dirent { | |||
3 | struct sysfs_dirent * s_parent; | 3 | struct sysfs_dirent * s_parent; |
4 | struct list_head s_sibling; | 4 | struct list_head s_sibling; |
5 | struct list_head s_children; | 5 | struct list_head s_children; |
6 | const char * s_name; | ||
6 | void * s_element; | 7 | void * s_element; |
7 | int s_type; | 8 | int s_type; |
8 | umode_t s_mode; | 9 | umode_t s_mode; |
@@ -21,8 +22,8 @@ extern int sysfs_create(struct dentry *, int mode, int (*init)(struct inode *)); | |||
21 | 22 | ||
22 | extern void release_sysfs_dirent(struct sysfs_dirent * sd); | 23 | extern void release_sysfs_dirent(struct sysfs_dirent * sd); |
23 | extern int sysfs_dirent_exist(struct sysfs_dirent *, const unsigned char *); | 24 | extern int sysfs_dirent_exist(struct sysfs_dirent *, const unsigned char *); |
24 | extern struct sysfs_dirent *sysfs_new_dirent(void *element, umode_t mode, | 25 | extern struct sysfs_dirent *sysfs_new_dirent(const char *name, void *element, |
25 | int type); | 26 | umode_t mode, int type); |
26 | extern void sysfs_attach_dirent(struct sysfs_dirent *sd, | 27 | extern void sysfs_attach_dirent(struct sysfs_dirent *sd, |
27 | struct sysfs_dirent *parent_sd, | 28 | struct sysfs_dirent *parent_sd, |
28 | struct dentry *dentry); | 29 | struct dentry *dentry); |
@@ -34,7 +35,6 @@ extern struct sysfs_dirent *sysfs_find(struct sysfs_dirent *dir, const char * na | |||
34 | extern int sysfs_create_subdir(struct kobject *, const char *, struct dentry **); | 35 | extern int sysfs_create_subdir(struct kobject *, const char *, struct dentry **); |
35 | extern void sysfs_remove_subdir(struct dentry *); | 36 | extern void sysfs_remove_subdir(struct dentry *); |
36 | 37 | ||
37 | extern const unsigned char * sysfs_get_name(struct sysfs_dirent *sd); | ||
38 | extern void sysfs_drop_dentry(struct sysfs_dirent *sd, struct dentry *parent); | 38 | extern void sysfs_drop_dentry(struct sysfs_dirent *sd, struct dentry *parent); |
39 | extern int sysfs_setattr(struct dentry *dentry, struct iattr *iattr); | 39 | extern int sysfs_setattr(struct dentry *dentry, struct iattr *iattr); |
40 | 40 | ||
@@ -48,7 +48,6 @@ extern const struct inode_operations sysfs_dir_inode_operations; | |||
48 | extern const struct inode_operations sysfs_symlink_inode_operations; | 48 | extern const struct inode_operations sysfs_symlink_inode_operations; |
49 | 49 | ||
50 | struct sysfs_symlink { | 50 | struct sysfs_symlink { |
51 | char * link_name; | ||
52 | struct kobject * target_kobj; | 51 | struct kobject * target_kobj; |
53 | }; | 52 | }; |
54 | 53 | ||