Add new attribute lunname to report only textual LUN-specific device IDs.
While lunid attribute prefers to report numeric ones, having both may be useful in some situations.
This commit is contained in:
parent
93729c1796
commit
40f27d7cf6
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=254766
@ -1091,7 +1091,8 @@ xpt_getattr(char *buf, size_t len, const char *attr, struct cam_path *path)
|
||||
cdai.buftype = CDAI_TYPE_SERIAL_NUM;
|
||||
else if (!strcmp(attr, "GEOM::physpath"))
|
||||
cdai.buftype = CDAI_TYPE_PHYS_PATH;
|
||||
else if (!strcmp(attr, "GEOM::lunid")) {
|
||||
else if (strcmp(attr, "GEOM::lunid") == 0 ||
|
||||
strcmp(attr, "GEOM::lunname") == 0) {
|
||||
cdai.buftype = CDAI_TYPE_SCSI_DEVID;
|
||||
cdai.bufsiz = CAM_SCSI_DEVID_MAXLEN;
|
||||
} else
|
||||
@ -1108,11 +1109,14 @@ xpt_getattr(char *buf, size_t len, const char *attr, struct cam_path *path)
|
||||
if (cdai.provsiz == 0)
|
||||
goto out;
|
||||
if (cdai.buftype == CDAI_TYPE_SCSI_DEVID) {
|
||||
idd = scsi_get_devid((struct scsi_vpd_device_id *)cdai.buf,
|
||||
cdai.provsiz, scsi_devid_is_lun_naa);
|
||||
if (idd == NULL)
|
||||
if (strcmp(attr, "GEOM::lunid") == 0) {
|
||||
idd = scsi_get_devid((struct scsi_vpd_device_id *)cdai.buf,
|
||||
cdai.provsiz, scsi_devid_is_lun_eui64);
|
||||
cdai.provsiz, scsi_devid_is_lun_naa);
|
||||
if (idd == NULL)
|
||||
idd = scsi_get_devid((struct scsi_vpd_device_id *)cdai.buf,
|
||||
cdai.provsiz, scsi_devid_is_lun_eui64);
|
||||
} else
|
||||
idd = NULL;
|
||||
if (idd == NULL)
|
||||
idd = scsi_get_devid((struct scsi_vpd_device_id *)cdai.buf,
|
||||
cdai.provsiz, scsi_devid_is_lun_t10);
|
||||
|
@ -460,6 +460,12 @@ g_disk_dumpconf(struct sbuf *sb, const char *indent, struct g_geom *gp, struct g
|
||||
if (dp->d_getattr(bp) == 0)
|
||||
sbuf_printf(sb, "%s<lunid>%s</lunid>\n",
|
||||
indent, buf);
|
||||
bp->bio_attribute = "GEOM::lunname";
|
||||
bp->bio_length = DISK_IDENT_SIZE;
|
||||
bp->bio_data = buf;
|
||||
if (dp->d_getattr(bp) == 0)
|
||||
sbuf_printf(sb, "%s<lunname>%s</lunname>\n",
|
||||
indent, buf);
|
||||
g_destroy_bio(bp);
|
||||
g_free(buf);
|
||||
} else
|
||||
|
Loading…
Reference in New Issue
Block a user