scsi: core: host template attribute groups
The patch introduces an additional field in the scsi_host_template structure - struct attribute_group **sdev_group. This field allows to define groups of attributes. It will provide an ability to use binary attributes as well as device attributes and to group them under subfolders if necessary. Signed-off-by: Stanislav Nijnikov <stanislav.nijnikov@wdc.com> Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
2238d31cde
commit
86b87cde0b
|
@ -1310,6 +1310,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;
|
||||
}
|
||||
|
@ -1349,6 +1356,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);
|
||||
|
|
|
@ -476,6 +476,12 @@ struct scsi_host_template {
|
|||
*/
|
||||
struct device_attribute **sdev_attrs;
|
||||
|
||||
/*
|
||||
* Pointer to the SCSI device attribute groups for this host,
|
||||
* NULL terminated.
|
||||
*/
|
||||
const struct attribute_group **sdev_groups;
|
||||
|
||||
/*
|
||||
* List of hosts per template.
|
||||
*
|
||||
|
|
Loading…
Reference in New Issue