Blame SOURCES/0081-iscsiadm-make-iface.ipaddress-optional-in-iface-conf.patch

d94dff
From 96eaaacaeac39625508e6ec8022bb5e565c36a7c Mon Sep 17 00:00:00 2001
d94dff
From: Anish Bhatt <anish@chelsio.com>
d94dff
Date: Fri, 25 Jul 2014 12:42:27 -0700
d94dff
Subject: [PATCH] iscsiadm : make iface.ipaddress optional in iface configs for
d94dff
 transports that don't have a hard requirement on it.
d94dff
d94dff
v2: cxgb4i changed to NOT_REQ as set ipaddress is not supported
d94dff
Signed-off-by: Anish Bhatt <anish@chelsio.com>
d94dff
---
d94dff
 usr/initiator_common.c | 15 ++++++++++++---
d94dff
 usr/transport.c        |  8 ++++----
d94dff
 usr/transport.h        |  6 ++++++
d94dff
 3 files changed, 22 insertions(+), 7 deletions(-)
d94dff
d94dff
diff --git a/usr/initiator_common.c b/usr/initiator_common.c
d94dff
index 50f8d41..8ff993d 100644
d94dff
--- a/usr/initiator_common.c
d94dff
+++ b/usr/initiator_common.c
d94dff
@@ -685,9 +685,18 @@ int iscsi_host_set_net_params(struct iface_rec *iface,
d94dff
 
d94dff
 	/* if we need to set the ip addr then set all the iface net settings */
d94dff
 	if (!iface_is_bound_by_ipaddr(iface)) {
d94dff
-		log_warning("Please set the iface.ipaddress for iface %s, "
d94dff
-			    "then retry the login command.\n", iface->name);
d94dff
-		return EINVAL;
d94dff
+		if (t->template->set_host_ip == SET_HOST_IP_REQ) {
d94dff
+			log_warning("Please set the iface.ipaddress for iface "
d94dff
+				    "%s, then retry the login command.\n",
d94dff
+				    iface->name);
d94dff
+			return EINVAL;
d94dff
+		} else if (t->template->set_host_ip == SET_HOST_IP_OPT) {
d94dff
+			log_info("Optional iface.ipaddress for iface %s "
d94dff
+				 "not set.\n", iface->name);
d94dff
+			return 0;
d94dff
+		} else {
d94dff
+			return EINVAL;
d94dff
+		}
d94dff
 	}
d94dff
 
d94dff
 	/* these type of drivers need the netdev upd */
d94dff
diff --git a/usr/transport.c b/usr/transport.c
d94dff
index 2f38519..630f163 100644
d94dff
--- a/usr/transport.c
d94dff
+++ b/usr/transport.c
d94dff
@@ -58,7 +58,7 @@ struct iscsi_transport_template iscsi_iser = {
d94dff
 
d94dff
 struct iscsi_transport_template cxgb3i = {
d94dff
 	.name		= "cxgb3i",
d94dff
-	.set_host_ip	= 1,
d94dff
+	.set_host_ip	= SET_HOST_IP_OPT,
d94dff
 	.ep_connect	= ktransport_ep_connect,
d94dff
 	.ep_poll	= ktransport_ep_poll,
d94dff
 	.ep_disconnect	= ktransport_ep_disconnect,
d94dff
@@ -67,7 +67,7 @@ struct iscsi_transport_template cxgb3i = {
d94dff
 
d94dff
 struct iscsi_transport_template cxgb4i = {
d94dff
 	.name		= "cxgb4i",
d94dff
-	.set_host_ip	= 1,
d94dff
+	.set_host_ip	= SET_HOST_IP_NOT_REQ,
d94dff
 	.ep_connect	= ktransport_ep_connect,
d94dff
 	.ep_poll	= ktransport_ep_poll,
d94dff
 	.ep_disconnect	= ktransport_ep_disconnect,
d94dff
@@ -76,7 +76,7 @@ struct iscsi_transport_template cxgb4i = {
d94dff
 
d94dff
 struct iscsi_transport_template bnx2i = {
d94dff
 	.name		= "bnx2i",
d94dff
-	.set_host_ip	= 1,
d94dff
+	.set_host_ip	= SET_HOST_IP_REQ,
d94dff
 	.use_boot_info	= 1,
d94dff
 	.ep_connect	= ktransport_ep_connect,
d94dff
 	.ep_poll	= ktransport_ep_poll,
d94dff
@@ -94,7 +94,7 @@ struct iscsi_transport_template be2iscsi = {
d94dff
 
d94dff
 struct iscsi_transport_template qla4xxx = {
d94dff
 	.name		= "qla4xxx",
d94dff
-	.set_host_ip	= 0,
d94dff
+	.set_host_ip	= SET_HOST_IP_NOT_REQ,
d94dff
 	.ep_connect	= ktransport_ep_connect,
d94dff
 	.ep_poll	= ktransport_ep_poll,
d94dff
 	.ep_disconnect	= ktransport_ep_disconnect,
d94dff
diff --git a/usr/transport.h b/usr/transport.h
d94dff
index 388e4b1..73041fa 100644
d94dff
--- a/usr/transport.h
d94dff
+++ b/usr/transport.h
d94dff
@@ -20,6 +20,12 @@
d94dff
 #include "types.h"
d94dff
 #include "config.h"
d94dff
 
d94dff
+enum set_host_ip_opts {
d94dff
+	SET_HOST_IP_NOT_REQ,	/* iface.ipaddress is not supported	*/
d94dff
+	SET_HOST_IP_REQ,	/* iface.ipaddress must be specified	*/
d94dff
+	SET_HOST_IP_OPT,	/* iface.ipaddress is not required	*/
d94dff
+};
d94dff
+
d94dff
 struct iscsi_transport;
d94dff
 struct iscsi_conn;
d94dff
 
d94dff
-- 
d94dff
1.9.3
d94dff