multipath-tools: output more topology info for NVMe discovery
authorJie Yang <yangjie65@huawei.com>
Mon, 4 Dec 2017 13:13:57 +0000 (21:13 +0800)
committerChristophe Varoqui <christophe.varoqui@opensvc.com>
Sat, 13 Jan 2018 09:09:29 +0000 (10:09 +0100)
Assign sg_id.channel to controller id of the NVMe/NVMf target
and assign sg_id.lun to namespace ID of the target.

Signed-off-by: Jie Yang <yangjie65@huawei.com>
Reviewed-by: Guan Junxiong <guanjunxiong@huawei.com>
libmultipath/discovery.c

index cadf461..4b31dde 100644 (file)
@@ -1206,12 +1206,14 @@ nvme_sysfs_pathinfo (struct path * pp, vector hwtable)
                   &pp->sg_id.scsi_id) != 2)
                return 1;
        pp->sg_id.channel = 0;
-       pp->sg_id.lun = 0;
+       pp->sg_id.lun = atoi(udev_device_get_sysattr_value(pp->udev, "nsid"));
 
        parent = udev_device_get_parent(pp->udev);
        if (!parent)
                return 1;
 
+       pp->sg_id.channel = atoi(udev_device_get_sysattr_value(parent, "cntlid"));
+
        snprintf(pp->vendor_id, SCSI_VENDOR_SIZE, "NVME");
        snprintf(pp->product_id, SCSI_PRODUCT_SIZE, "%s",
                 udev_device_get_sysattr_value(parent, "model"));