aboutsummaryrefslogtreecommitdiffstats
path: root/fs/sysfs/sysfs.h
diff options
context:
space:
mode:
authorTejun Heo <htejun@gmail.com>2007-06-13 14:45:15 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2007-07-11 19:09:04 -0400
commit0c096b507f15397da890051ee73de4266d3941fb (patch)
treec6b7d204a493157b3926bdb46500313eee9f9690 /fs/sysfs/sysfs.h
parent13b3086d2ea483cbcae5a4236446cecc082a72cf (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.h7
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
22extern void release_sysfs_dirent(struct sysfs_dirent * sd); 23extern void release_sysfs_dirent(struct sysfs_dirent * sd);
23extern int sysfs_dirent_exist(struct sysfs_dirent *, const unsigned char *); 24extern int sysfs_dirent_exist(struct sysfs_dirent *, const unsigned char *);
24extern struct sysfs_dirent *sysfs_new_dirent(void *element, umode_t mode, 25extern struct sysfs_dirent *sysfs_new_dirent(const char *name, void *element,
25 int type); 26 umode_t mode, int type);
26extern void sysfs_attach_dirent(struct sysfs_dirent *sd, 27extern 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
34extern int sysfs_create_subdir(struct kobject *, const char *, struct dentry **); 35extern int sysfs_create_subdir(struct kobject *, const char *, struct dentry **);
35extern void sysfs_remove_subdir(struct dentry *); 36extern void sysfs_remove_subdir(struct dentry *);
36 37
37extern const unsigned char * sysfs_get_name(struct sysfs_dirent *sd);
38extern void sysfs_drop_dentry(struct sysfs_dirent *sd, struct dentry *parent); 38extern void sysfs_drop_dentry(struct sysfs_dirent *sd, struct dentry *parent);
39extern int sysfs_setattr(struct dentry *dentry, struct iattr *iattr); 39extern int sysfs_setattr(struct dentry *dentry, struct iattr *iattr);
40 40
@@ -48,7 +48,6 @@ extern const struct inode_operations sysfs_dir_inode_operations;
48extern const struct inode_operations sysfs_symlink_inode_operations; 48extern const struct inode_operations sysfs_symlink_inode_operations;
49 49
50struct sysfs_symlink { 50struct sysfs_symlink {
51 char * link_name;
52 struct kobject * target_kobj; 51 struct kobject * target_kobj;
53}; 52};
54 53