diff options
Diffstat (limited to 'fs/sysfs/dir.c')
-rw-r--r-- | fs/sysfs/dir.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/sysfs/dir.c b/fs/sysfs/dir.c index dd3779cf3a3b..2a7a3f5d1ca6 100644 --- a/fs/sysfs/dir.c +++ b/fs/sysfs/dir.c | |||
@@ -91,6 +91,9 @@ static int sysfs_link_sibling(struct sysfs_dirent *sd) | |||
91 | struct rb_node **node = &sd->s_parent->s_dir.children.rb_node; | 91 | struct rb_node **node = &sd->s_parent->s_dir.children.rb_node; |
92 | struct rb_node *parent = NULL; | 92 | struct rb_node *parent = NULL; |
93 | 93 | ||
94 | if (sysfs_type(sd) == SYSFS_DIR) | ||
95 | sd->s_parent->s_dir.subdirs++; | ||
96 | |||
94 | while (*node) { | 97 | while (*node) { |
95 | struct sysfs_dirent *pos; | 98 | struct sysfs_dirent *pos; |
96 | int result; | 99 | int result; |
@@ -123,6 +126,9 @@ static int sysfs_link_sibling(struct sysfs_dirent *sd) | |||
123 | */ | 126 | */ |
124 | static void sysfs_unlink_sibling(struct sysfs_dirent *sd) | 127 | static void sysfs_unlink_sibling(struct sysfs_dirent *sd) |
125 | { | 128 | { |
129 | if (sysfs_type(sd) == SYSFS_DIR) | ||
130 | sd->s_parent->s_dir.subdirs--; | ||
131 | |||
126 | rb_erase(&sd->s_rb, &sd->s_parent->s_dir.children); | 132 | rb_erase(&sd->s_rb, &sd->s_parent->s_dir.children); |
127 | } | 133 | } |
128 | 134 | ||