sysfs: make sysfs_root a regular directory dirent
sysfs_root is different from a regular directory dirent in that it's of type SYSFS_ROOT and doesn't have a name. These differences aren't used by anybody and only adds to complexity. Make sysfs_root a regular directory dirent. Signed-off-by: Tejun Heo <htejun@gmail.com> Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
d6b4fd2fae
commit
dc2f75f0e0
3 changed files with 6 additions and 11 deletions
|
@ -157,11 +157,6 @@ static void sysfs_init_inode(struct sysfs_dirent *sd, struct inode *inode)
|
|||
|
||||
/* initialize inode according to type */
|
||||
switch (sysfs_type(sd)) {
|
||||
case SYSFS_ROOT:
|
||||
inode->i_op = &sysfs_dir_inode_operations;
|
||||
inode->i_fop = &sysfs_dir_operations;
|
||||
inc_nlink(inode); /* directory, account for "." */
|
||||
break;
|
||||
case SYSFS_DIR:
|
||||
inode->i_op = &sysfs_dir_inode_operations;
|
||||
inode->i_fop = &sysfs_dir_operations;
|
||||
|
|
|
@ -24,8 +24,9 @@ static const struct super_operations sysfs_ops = {
|
|||
};
|
||||
|
||||
struct sysfs_dirent sysfs_root = {
|
||||
.s_name = "",
|
||||
.s_count = ATOMIC_INIT(1),
|
||||
.s_flags = SYSFS_ROOT,
|
||||
.s_flags = SYSFS_DIR,
|
||||
.s_mode = S_IFDIR | S_IRWXU | S_IRUGO | S_IXUGO,
|
||||
.s_ino = 1,
|
||||
};
|
||||
|
|
|
@ -48,11 +48,10 @@ struct sysfs_dirent {
|
|||
#define SD_DEACTIVATED_BIAS INT_MIN
|
||||
|
||||
#define SYSFS_TYPE_MASK 0x00ff
|
||||
#define SYSFS_ROOT 0x0001
|
||||
#define SYSFS_DIR 0x0002
|
||||
#define SYSFS_KOBJ_ATTR 0x0004
|
||||
#define SYSFS_KOBJ_BIN_ATTR 0x0008
|
||||
#define SYSFS_KOBJ_LINK 0x0020
|
||||
#define SYSFS_DIR 0x0001
|
||||
#define SYSFS_KOBJ_ATTR 0x0002
|
||||
#define SYSFS_KOBJ_BIN_ATTR 0x0004
|
||||
#define SYSFS_KOBJ_LINK 0x0008
|
||||
#define SYSFS_COPY_NAME (SYSFS_DIR | SYSFS_KOBJ_LINK)
|
||||
|
||||
#define SYSFS_FLAG_MASK ~SYSFS_TYPE_MASK
|
||||
|
|
Loading…
Reference in a new issue