nvme: expose hostid via sysfs for fabrics controllers
We allow userspace to connect with a custom hostid which is useful for certain use-cases. However there is is no way to tell what is the hostid used to connect to a given controller. Expose this so userspace can correlate controllers based on hostid. Signed-off-by: Sagi Grimberg <sagi@grimberg.me> Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com> Signed-off-by: Keith Busch <kbusch@kernel.org>
This commit is contained in:
parent
76171c6cdf
commit
45fb19f766
@ -3252,6 +3252,16 @@ static ssize_t nvme_sysfs_show_hostnqn(struct device *dev,
|
|||||||
}
|
}
|
||||||
static DEVICE_ATTR(hostnqn, S_IRUGO, nvme_sysfs_show_hostnqn, NULL);
|
static DEVICE_ATTR(hostnqn, S_IRUGO, nvme_sysfs_show_hostnqn, NULL);
|
||||||
|
|
||||||
|
static ssize_t nvme_sysfs_show_hostid(struct device *dev,
|
||||||
|
struct device_attribute *attr,
|
||||||
|
char *buf)
|
||||||
|
{
|
||||||
|
struct nvme_ctrl *ctrl = dev_get_drvdata(dev);
|
||||||
|
|
||||||
|
return snprintf(buf, PAGE_SIZE, "%pU\n", &ctrl->opts->host->id);
|
||||||
|
}
|
||||||
|
static DEVICE_ATTR(hostid, S_IRUGO, nvme_sysfs_show_hostid, NULL);
|
||||||
|
|
||||||
static ssize_t nvme_sysfs_show_address(struct device *dev,
|
static ssize_t nvme_sysfs_show_address(struct device *dev,
|
||||||
struct device_attribute *attr,
|
struct device_attribute *attr,
|
||||||
char *buf)
|
char *buf)
|
||||||
@ -3278,6 +3288,7 @@ static struct attribute *nvme_dev_attrs[] = {
|
|||||||
&dev_attr_queue_count.attr,
|
&dev_attr_queue_count.attr,
|
||||||
&dev_attr_sqsize.attr,
|
&dev_attr_sqsize.attr,
|
||||||
&dev_attr_hostnqn.attr,
|
&dev_attr_hostnqn.attr,
|
||||||
|
&dev_attr_hostid.attr,
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -3293,6 +3304,8 @@ static umode_t nvme_dev_attrs_are_visible(struct kobject *kobj,
|
|||||||
return 0;
|
return 0;
|
||||||
if (a == &dev_attr_hostnqn.attr && !ctrl->opts)
|
if (a == &dev_attr_hostnqn.attr && !ctrl->opts)
|
||||||
return 0;
|
return 0;
|
||||||
|
if (a == &dev_attr_hostid.attr && !ctrl->opts)
|
||||||
|
return 0;
|
||||||
|
|
||||||
return a->mode;
|
return a->mode;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user