Commit 848b3082 authored by Bart Van Assche's avatar Bart Van Assche Committed by Roland Dreier

IB/srp: Export sgid to sysfs

On an initiator system with multiple IB ports it is not yet possible
to figure out what the originating port of an SRP connection is. Hence
make the source GID available in sysfs.
Signed-off-by: default avatarBart Van Assche <bvanassche@acm.org>
Acked-by: default avatarDavid Dillow <dillowda@ornl.gov>
Signed-off-by: default avatarRoland Dreier <roland@purestorage.com>
parent a95cadb9
...@@ -155,6 +155,13 @@ Contact: linux-rdma@vger.kernel.org ...@@ -155,6 +155,13 @@ Contact: linux-rdma@vger.kernel.org
Description: InfiniBand service ID used for establishing communication with Description: InfiniBand service ID used for establishing communication with
the SRP target. the SRP target.
What: /sys/class/scsi_host/host<n>/sgid
Date: February 1, 2014
KernelVersion: 3.13
Contact: linux-rdma@vger.kernel.org
Description: InfiniBand GID of the source port used for communication with
the SRP target.
What: /sys/class/scsi_host/host<n>/zero_req_lim What: /sys/class/scsi_host/host<n>/zero_req_lim
Date: September 20, 2006 Date: September 20, 2006
KernelVersion: 2.6.18 KernelVersion: 2.6.18
......
...@@ -1965,6 +1965,14 @@ static ssize_t show_pkey(struct device *dev, struct device_attribute *attr, ...@@ -1965,6 +1965,14 @@ static ssize_t show_pkey(struct device *dev, struct device_attribute *attr,
return sprintf(buf, "0x%04x\n", be16_to_cpu(target->path.pkey)); return sprintf(buf, "0x%04x\n", be16_to_cpu(target->path.pkey));
} }
static ssize_t show_sgid(struct device *dev, struct device_attribute *attr,
char *buf)
{
struct srp_target_port *target = host_to_target(class_to_shost(dev));
return sprintf(buf, "%pI6\n", target->path.sgid.raw);
}
static ssize_t show_dgid(struct device *dev, struct device_attribute *attr, static ssize_t show_dgid(struct device *dev, struct device_attribute *attr,
char *buf) char *buf)
{ {
...@@ -2049,6 +2057,7 @@ static DEVICE_ATTR(id_ext, S_IRUGO, show_id_ext, NULL); ...@@ -2049,6 +2057,7 @@ static DEVICE_ATTR(id_ext, S_IRUGO, show_id_ext, NULL);
static DEVICE_ATTR(ioc_guid, S_IRUGO, show_ioc_guid, NULL); static DEVICE_ATTR(ioc_guid, S_IRUGO, show_ioc_guid, NULL);
static DEVICE_ATTR(service_id, S_IRUGO, show_service_id, NULL); static DEVICE_ATTR(service_id, S_IRUGO, show_service_id, NULL);
static DEVICE_ATTR(pkey, S_IRUGO, show_pkey, NULL); static DEVICE_ATTR(pkey, S_IRUGO, show_pkey, NULL);
static DEVICE_ATTR(sgid, S_IRUGO, show_sgid, NULL);
static DEVICE_ATTR(dgid, S_IRUGO, show_dgid, NULL); static DEVICE_ATTR(dgid, S_IRUGO, show_dgid, NULL);
static DEVICE_ATTR(orig_dgid, S_IRUGO, show_orig_dgid, NULL); static DEVICE_ATTR(orig_dgid, S_IRUGO, show_orig_dgid, NULL);
static DEVICE_ATTR(req_lim, S_IRUGO, show_req_lim, NULL); static DEVICE_ATTR(req_lim, S_IRUGO, show_req_lim, NULL);
...@@ -2065,6 +2074,7 @@ static struct device_attribute *srp_host_attrs[] = { ...@@ -2065,6 +2074,7 @@ static struct device_attribute *srp_host_attrs[] = {
&dev_attr_ioc_guid, &dev_attr_ioc_guid,
&dev_attr_service_id, &dev_attr_service_id,
&dev_attr_pkey, &dev_attr_pkey,
&dev_attr_sgid,
&dev_attr_dgid, &dev_attr_dgid,
&dev_attr_orig_dgid, &dev_attr_orig_dgid,
&dev_attr_req_lim, &dev_attr_req_lim,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment