aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/scsi_transport_iscsi.c
diff options
context:
space:
mode:
authorMike Christie <michaelc@cs.wisc.edu>2007-05-30 13:57:25 -0400
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>2007-06-02 15:38:04 -0400
commitd8196ed2181b4595eaf464a5bcbddb6c28649a39 (patch)
treec4a9fd65f2c43bfecfa50f5714036f52200749c6 /drivers/scsi/scsi_transport_iscsi.c
parent2223696192c687f2853e42b7c1e0d3ef002081fd (diff)
[SCSI] iscsi class, iscsi_tcp, iser, qla4xxx: add netdevname sysfs attr
iSCSI must support software iscsi (iscsi_tcp, iser), hardware iscsi (qla4xxx), and partial offload (broadcom). To be able to allow each stack or driver or port (virtual or physical) to be able to log into the same target portal we use the initiator tuple [[HWADDRESS | NETDEVNAME], INITIATOR_NAME] and the target tuple [TARGETNAME, CONN_ADDRESS, CONN_PORT] to id a session. This patch adds the netdev name, which is used by software iscsi when it binds a session to a netdevice using the SO_BINDTODEVICE sock opt. It cannot use HWADDRESS because if someone did vlans then the same netdevice will have the same mac and the initiator,target id will not be unique. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Cc: Roland Dreier <rdreier@cisco.com> Cc: David C Somayajulu <david.somayajulu@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/scsi_transport_iscsi.c')
-rw-r--r--drivers/scsi/scsi_transport_iscsi.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/scsi/scsi_transport_iscsi.c b/drivers/scsi/scsi_transport_iscsi.c
index 9b54eea20560..34c1860a259d 100644
--- a/drivers/scsi/scsi_transport_iscsi.c
+++ b/drivers/scsi/scsi_transport_iscsi.c
@@ -32,7 +32,7 @@
32 32
33#define ISCSI_SESSION_ATTRS 15 33#define ISCSI_SESSION_ATTRS 15
34#define ISCSI_CONN_ATTRS 11 34#define ISCSI_CONN_ATTRS 11
35#define ISCSI_HOST_ATTRS 3 35#define ISCSI_HOST_ATTRS 4
36#define ISCSI_TRANSPORT_VERSION "2.0-724" 36#define ISCSI_TRANSPORT_VERSION "2.0-724"
37 37
38struct iscsi_internal { 38struct iscsi_internal {
@@ -1261,8 +1261,9 @@ show_host_param_##param(struct class_device *cdev, char *buf) \
1261static ISCSI_CLASS_ATTR(host, field, S_IRUGO, show_host_param_##param, \ 1261static ISCSI_CLASS_ATTR(host, field, S_IRUGO, show_host_param_##param, \
1262 NULL); 1262 NULL);
1263 1263
1264iscsi_host_attr(ipaddress, ISCSI_HOST_PARAM_IPADDRESS); 1264iscsi_host_attr(netdev, ISCSI_HOST_PARAM_NETDEV_NAME);
1265iscsi_host_attr(hwaddress, ISCSI_HOST_PARAM_HWADDRESS); 1265iscsi_host_attr(hwaddress, ISCSI_HOST_PARAM_HWADDRESS);
1266iscsi_host_attr(ipaddress, ISCSI_HOST_PARAM_IPADDRESS);
1266iscsi_host_attr(initiatorname, ISCSI_HOST_PARAM_INITIATOR_NAME); 1267iscsi_host_attr(initiatorname, ISCSI_HOST_PARAM_INITIATOR_NAME);
1267 1268
1268#define SETUP_PRIV_SESSION_RD_ATTR(field) \ 1269#define SETUP_PRIV_SESSION_RD_ATTR(field) \
@@ -1399,6 +1400,7 @@ iscsi_register_transport(struct iscsi_transport *tt)
1399 priv->t.host_size = sizeof(struct iscsi_host); 1400 priv->t.host_size = sizeof(struct iscsi_host);
1400 transport_container_register(&priv->t.host_attrs); 1401 transport_container_register(&priv->t.host_attrs);
1401 1402
1403 SETUP_HOST_RD_ATTR(netdev, ISCSI_HOST_NETDEV_NAME);
1402 SETUP_HOST_RD_ATTR(ipaddress, ISCSI_HOST_IPADDRESS); 1404 SETUP_HOST_RD_ATTR(ipaddress, ISCSI_HOST_IPADDRESS);
1403 SETUP_HOST_RD_ATTR(hwaddress, ISCSI_HOST_HWADDRESS); 1405 SETUP_HOST_RD_ATTR(hwaddress, ISCSI_HOST_HWADDRESS);
1404 SETUP_HOST_RD_ATTR(initiatorname, ISCSI_HOST_INITIATOR_NAME); 1406 SETUP_HOST_RD_ATTR(initiatorname, ISCSI_HOST_INITIATOR_NAME);