From: Adheer Chandravanshi <adheer.chandravanshi@qlogic.com>
Date: Mon, 1 Jul 2013 05:54:11 -0400
Subject: [SCSI] scsi_transport_iscsi: Exporting new attrs for iscsi session
	and connection in sysfs
Git-commit: ae542edb11c79706cd74d7bd54ebd7702965a7f3
Patch-mainline: v3.12-rc1
References: bsc#923002

lduncan@suse.com:
Partial backport, since we only needed the discovery session, and
did not want to port unused code in order to keep the patch intact.

Signed-off-by: Adheer Chandravanshi <adheer.chandravanshi@qlogic.com>
Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Acked-by: Lee Duncan <lduncan@suse.com>
---
 drivers/scsi/scsi_transport_iscsi.c |    6 +++++-
 include/scsi/iscsi_if.h             |    3 +++
 2 files changed, 8 insertions(+), 1 deletion(-)

--- a/drivers/scsi/scsi_transport_iscsi.c
+++ b/drivers/scsi/scsi_transport_iscsi.c
@@ -24,7 +24,6 @@
 #include <linux/mutex.h>
 #include <linux/slab.h>
 #include <linux/bsg-lib.h>
-#include <linux/list.h>
 #include <net/tcp.h>
 #include <scsi/scsi.h>
 #include <scsi/scsi_host.h>
@@ -3358,6 +3357,7 @@ iscsi_conn_attr(persistent_address, ISCS
 iscsi_conn_attr(ping_tmo, ISCSI_PARAM_PING_TMO);
 iscsi_conn_attr(recv_tmo, ISCSI_PARAM_RECV_TMO);
 
+
 #define iscsi_conn_ep_attr_show(param)					\
 static ssize_t show_conn_ep_param_##param(struct device *dev,		\
 					  struct device_attribute *attr,\
@@ -3503,6 +3503,7 @@ iscsi_session_attr(tgt_reset_tmo, ISCSI_
 iscsi_session_attr(ifacename, ISCSI_PARAM_IFACE_NAME, 0);
 iscsi_session_attr(initiatorname, ISCSI_PARAM_INITIATOR_NAME, 0);
 iscsi_session_attr(targetalias, ISCSI_PARAM_TARGET_ALIAS, 0);
+iscsi_session_attr(discovery_session, ISCSI_PARAM_DISCOVERY_SESS, 0);
 
 static ssize_t
 show_priv_session_state(struct device *dev, struct device_attribute *attr,
@@ -3604,6 +3605,7 @@ static struct attribute *iscsi_session_a
 	&dev_attr_sess_chap_out_idx.attr,
 	&dev_attr_sess_chap_in_idx.attr,
 	&dev_attr_priv_sess_target_id.attr,
+	&dev_attr_sess_discovery_session.attr,
 	NULL,
 };
 
@@ -3663,6 +3665,8 @@ static mode_t iscsi_session_attr_is_visi
 		param = ISCSI_PARAM_TARGET_ALIAS;
 	else if (attr == &dev_attr_priv_sess_recovery_tmo.attr)
 		return S_IRUGO | S_IWUSR;
+	else if (attr == &dev_attr_sess_discovery_session.attr)
+		param = ISCSI_PARAM_DISCOVERY_SESS;
 	else if (attr == &dev_attr_priv_sess_state.attr)
 		return S_IRUGO;
 	else if (attr == &dev_attr_priv_sess_creator.attr)
--- a/include/scsi/iscsi_if.h
+++ b/include/scsi/iscsi_if.h
@@ -489,6 +489,9 @@ enum iscsi_param {
 
 	ISCSI_PARAM_CHAP_IN_IDX,
 	ISCSI_PARAM_CHAP_OUT_IDX,
+
+	ISCSI_PARAM_DISCOVERY_SESS,
+
 	/* must always be last */
 	ISCSI_PARAM_MAX,
 };
