[SCSI] sysfs: fix the sysfs_add_file_to_group interfaces
authorJames Bottomley <James.Bottomley@HansenPartnership.com>
Thu, 3 Jan 2008 00:44:05 +0000 (18:44 -0600)
committerJames Bottomley <James.Bottomley@HansenPartnership.com>
Wed, 23 Jan 2008 17:29:17 +0000 (11:29 -0600)
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>
fs/sysfs/file.c

index 4045bdcc4b331dbf7f4cdd7c6d781f16021ffbf2..b834f1709f9f93556cde645b92e5bfb4aa5a91e0 100644 (file)
@@ -568,7 +568,11 @@ int sysfs_add_file_to_group(struct kobject *kobj,
        struct sysfs_dirent *dir_sd;
        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)
                return -ENOENT;
 
@@ -656,7 +660,10 @@ void sysfs_remove_file_from_group(struct kobject *kobj,
 {
        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) {
                sysfs_hash_and_remove(dir_sd, attr->name);
                sysfs_put(dir_sd);