Эх сурвалжийг харах

[SCSI] sysfs: fix the sysfs_add_file_to_group interfaces

I can't see a reason why these shouldn't work on every group.  However,
they only seem to work on named groups.  This patch allows the group
functions to work on anonymous groups (those with NULL names).

Acked-by: Tejun Heo <htejun@gmail.com>
Acked-by: Kay Sievers <kay.sievers@vrfy.org>
Acked-by: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
James Bottomley 17 жил өмнө
parent
commit
11f24fbdf5
1 өөрчлөгдсөн 9 нэмэгдсэн , 2 устгасан
  1. 9 2
      fs/sysfs/file.c

+ 9 - 2
fs/sysfs/file.c

@@ -568,7 +568,11 @@ int sysfs_add_file_to_group(struct kobject *kobj,
 	struct sysfs_dirent *dir_sd;
 	struct sysfs_dirent *dir_sd;
 	int error;
 	int error;
 
 
-	dir_sd = sysfs_get_dirent(kobj->sd, group);
+	if (group)
+		dir_sd = sysfs_get_dirent(kobj->sd, group);
+	else
+		dir_sd = sysfs_get(kobj->sd);
+
 	if (!dir_sd)
 	if (!dir_sd)
 		return -ENOENT;
 		return -ENOENT;
 
 
@@ -656,7 +660,10 @@ void sysfs_remove_file_from_group(struct kobject *kobj,
 {
 {
 	struct sysfs_dirent *dir_sd;
 	struct sysfs_dirent *dir_sd;
 
 
-	dir_sd = sysfs_get_dirent(kobj->sd, group);
+	if (group)
+		dir_sd = sysfs_get_dirent(kobj->sd, group);
+	else
+		dir_sd = sysfs_get(kobj->sd);
 	if (dir_sd) {
 	if (dir_sd) {
 		sysfs_hash_and_remove(dir_sd, attr->name);
 		sysfs_hash_and_remove(dir_sd, attr->name);
 		sysfs_put(dir_sd);
 		sysfs_put(dir_sd);