Merge tag 'scsi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb...
[sfrench/cifs-2.6.git] / drivers / scsi / scsi_sysfs.c
index 7142c8be1099631d777cac585ca343c0ba247209..1e36c9a9ad17df678529e13bf0dfc0f888a3c35e 100644 (file)
@@ -1309,6 +1309,13 @@ int scsi_sysfs_add_sdev(struct scsi_device *sdev)
                }
        }
 
+       if (sdev->host->hostt->sdev_groups) {
+               error = sysfs_create_groups(&sdev->sdev_gendev.kobj,
+                               sdev->host->hostt->sdev_groups);
+               if (error)
+                       return error;
+       }
+
        scsi_autopm_put_device(sdev);
        return error;
 }
@@ -1348,6 +1355,10 @@ void __scsi_remove_device(struct scsi_device *sdev)
                if (res != 0)
                        return;
 
+               if (sdev->host->hostt->sdev_groups)
+                       sysfs_remove_groups(&sdev->sdev_gendev.kobj,
+                                       sdev->host->hostt->sdev_groups);
+
                bsg_unregister_queue(sdev->request_queue);
                device_unregister(&sdev->sdev_dev);
                transport_remove_device(dev);