@@ -1086,6 +1086,13 @@ int ata_scsi_dev_config(struct scsi_device *sdev, struct ata_device *dev)
return 0;
}
+int ata_scsi_durable_name(const struct device *dev, char *buf, size_t len)
+{
+ struct ata_device *ata_dev = container_of(dev, struct ata_device, tdev);
+
+ return scsi_durable_name(ata_dev->sdev, buf, len);
+}
+
/**
* ata_scsi_slave_config - Set SCSI device attributes
* @sdev: SCSI device to examine
@@ -1102,14 +1109,19 @@ int ata_scsi_slave_config(struct scsi_device *sdev)
{
struct ata_port *ap = ata_shost_to_port(sdev->host);
struct ata_device *dev = __ata_scsi_find_dev(ap, sdev);
- int rc = 0;
+ int rc;
ata_scsi_sdev_config(sdev);
- if (dev)
+ if (dev) {
rc = ata_scsi_dev_config(sdev, dev);
+ if (rc)
+ return rc;
- return rc;
+ dev->tdev.durable_name = ata_scsi_durable_name;
+ }
+
+ return 0;
}
EXPORT_SYMBOL_GPL(ata_scsi_slave_config);
Function used to create the durable name for ata scsi. Signed-off-by: Tony Asleson <tasleson@redhat.com> --- drivers/ata/libata-scsi.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-)