I have a piece of hardware, a 16 bay storagetek optically connected SAN to
be specific, that returns empty string for Device id.
I did the following patch to resolve the issue, it basically allows empty
string for vendor and product, I couldn't find anywhere that had an issue with
it..
diff --git a/libmultipath/discovery.c b/libmultipath/discovery.c
index 663c8ea..92d0e49 100644
--- a/libmultipath/discovery.c
+++ b/libmultipath/discovery.c
@@ -1149,12 +1149,12 @@ scsi_sysfs_pathinfo (struct path * pp, vector hwtable)
if (!attr_path || pp->sg_id.host_no == -1)
return 1;
- if (sysfs_get_vendor(parent, pp->vendor_id, SCSI_VENDOR_SIZE) <= 0)
+ if (sysfs_get_vendor(parent, pp->vendor_id, SCSI_VENDOR_SIZE) < 0)
return 1;
condlog(3, "%s: vendor = %s", pp->dev, pp->vendor_id);
- if (sysfs_get_model(parent, pp->product_id, SCSI_PRODUCT_SIZE) <= 0)
+ if (sysfs_get_model(parent, pp->product_id, SCSI_PRODUCT_SIZE) < 0)
return 1;
condlog(3, "%s: product = %s", pp->dev, pp->product_id);
be specific, that returns empty string for Device id.
I did the following patch to resolve the issue, it basically allows empty
string for vendor and product, I couldn't find anywhere that had an issue with
it..
diff --git a/libmultipath/discovery.c b/libmultipath/discovery.c
index 663c8ea..92d0e49 100644
--- a/libmultipath/discovery.c
+++ b/libmultipath/discovery.c
@@ -1149,12 +1149,12 @@ scsi_sysfs_pathinfo (struct path * pp, vector hwtable)
if (!attr_path || pp->sg_id.host_no == -1)
return 1;
- if (sysfs_get_vendor(parent, pp->vendor_id, SCSI_VENDOR_SIZE) <= 0)
+ if (sysfs_get_vendor(parent, pp->vendor_id, SCSI_VENDOR_SIZE) < 0)
return 1;
condlog(3, "%s: vendor = %s", pp->dev, pp->vendor_id);
- if (sysfs_get_model(parent, pp->product_id, SCSI_PRODUCT_SIZE) <= 0)
+ if (sysfs_get_model(parent, pp->product_id, SCSI_PRODUCT_SIZE) < 0)
return 1;
condlog(3, "%s: product = %s", pp->dev, pp->product_id);
-- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel