summaryrefslogtreecommitdiffstats
path: root/include/scsi
diff options
context:
space:
mode:
authorHannes Reinecke <hare@suse.de>2015-12-01 10:16:55 +0100
committerMartin K. Petersen <martin.petersen@oracle.com>2015-12-02 16:40:19 -0500
commit9983bed3907c379d1d30b7509bb0a871ed655f9d (patch)
treeb9b437dc4baaf07b3ced70ea0eaceee855022795 /include/scsi
parente2d817db32027c25a1702f667fbf0bf6a73fc68c (diff)
downloadlinux-stable-9983bed3907c379d1d30b7509bb0a871ed655f9d.tar.gz
linux-stable-9983bed3907c379d1d30b7509bb0a871ed655f9d.tar.bz2
linux-stable-9983bed3907c379d1d30b7509bb0a871ed655f9d.zip
scsi: Add scsi_vpd_lun_id()
Add a function scsi_vpd_lun_id() to return a unique device identifcation based on the designation descriptors of VPD page 0x83. As devices might implement several descriptors the order of preference is: - NAA IEE Registered Extended - EUI-64 based 16-byte - EUI-64 based 12-byte - NAA IEEE Registered - NAA IEEE Extended A SCSI name string descriptor is preferred to all of them if the identification is longer than 16 bytes. The returned unique device identification will be formatted as a SCSI Name string to avoid clashes between different designator types. [mkp: Fixed up kernel doc comment from Johannes] Signed-off-by: Hannes Reinecke <hare@suse.de> Reviewed-by: Ewan Milne <emilne@redhat.com> Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de> Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'include/scsi')
-rw-r--r--include/scsi/scsi_device.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/scsi/scsi_device.h b/include/scsi/scsi_device.h
index bde4077f2864..4c49cfa25cac 100644
--- a/include/scsi/scsi_device.h
+++ b/include/scsi/scsi_device.h
@@ -415,6 +415,7 @@ static inline int scsi_execute_req(struct scsi_device *sdev,
}
extern void sdev_disable_disk_events(struct scsi_device *sdev);
extern void sdev_enable_disk_events(struct scsi_device *sdev);
+extern int scsi_vpd_lun_id(struct scsi_device *, char *, size_t);
#ifdef CONFIG_PM
extern int scsi_autopm_get_device(struct scsi_device *);