diff options
Diffstat (limited to 'fs/sysfs/group.c')
-rw-r--r-- | fs/sysfs/group.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/fs/sysfs/group.c b/fs/sysfs/group.c index 1898a10e38ce..3796afdff40c 100644 --- a/fs/sysfs/group.c +++ b/fs/sysfs/group.c | |||
@@ -206,6 +206,15 @@ void sysfs_remove_group(struct kobject *kobj, | |||
206 | struct sysfs_dirent *dir_sd = kobj->sd; | 206 | struct sysfs_dirent *dir_sd = kobj->sd; |
207 | struct sysfs_dirent *sd; | 207 | struct sysfs_dirent *sd; |
208 | 208 | ||
209 | /* | ||
210 | * Sysfs directories are now removed recursively by | ||
211 | * sysfs_remove_dir(). This means that the function can be called | ||
212 | * for a group whose sysfs entry is already removed. In that case | ||
213 | * all its groups are guaranteed to be already removed. | ||
214 | */ | ||
215 | if (dir_sd->s_flags & SYSFS_FLAG_REMOVED) | ||
216 | return; | ||
217 | |||
209 | if (grp->name) { | 218 | if (grp->name) { |
210 | sd = sysfs_get_dirent(dir_sd, grp->name); | 219 | sd = sysfs_get_dirent(dir_sd, grp->name); |
211 | if (!sd) { | 220 | if (!sd) { |