You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1.2 KiB
36 lines
1.2 KiB
--- |
|
libmultipath/discovery.c | 11 +++++++++-- |
|
1 file changed, 9 insertions(+), 2 deletions(-) |
|
|
|
Index: multipath-tools-130222/libmultipath/discovery.c |
|
=================================================================== |
|
--- multipath-tools-130222.orig/libmultipath/discovery.c |
|
+++ multipath-tools-130222/libmultipath/discovery.c |
|
@@ -889,7 +889,7 @@ nvme_sysfs_pathinfo (struct path * pp) |
|
{ |
|
struct udev_device *parent; |
|
const char *attr_path = NULL; |
|
- |
|
+ const char *attr; |
|
|
|
attr_path = udev_device_get_sysname(pp->udev); |
|
if (!attr_path) |
|
@@ -902,10 +902,17 @@ nvme_sysfs_pathinfo (struct path * pp) |
|
pp->sg_id.channel = 0; |
|
pp->sg_id.lun = 0; |
|
|
|
- parent = udev_device_get_parent(pp->udev); |
|
+ parent = udev_device_get_parent_with_subsystem_devtype(pp->udev, |
|
+ "nvme", NULL); |
|
if (!parent) |
|
return 1; |
|
|
|
+ attr = udev_device_get_sysattr_value(pp->udev, "nsid"); |
|
+ pp->sg_id.lun = attr ? atoi(attr) : 0; |
|
+ |
|
+ attr = udev_device_get_sysattr_value(parent, "cntlid"); |
|
+ pp->sg_id.channel = attr ? atoi(attr) : 0; |
|
+ |
|
snprintf(pp->vendor_id, SCSI_VENDOR_SIZE, "NVME"); |
|
snprintf(pp->product_id, PATH_PRODUCT_SIZE, "%s", |
|
udev_device_get_sysattr_value(parent, "model"));
|
|
|