[stgt] [PATCH 09/12] Define a new nexus_init interface to be used by thread per target

Chandra Seetharaman sekharan at us.ibm.com
Mon Sep 27 07:21:16 CEST 2010


Define a new interface nexus_init for transport to enable handling of the
tcp events of a target by the thread attached with the target.

Signed-off-by: FUJITA Tomonori <fujita.tomonori at lab.ntt.co.jp>
Signed-off-by: Chandra Seetharaman <sekharan at us.ibm.com>

---
 usr/iscsi/iscsi_rdma.c |    6 ++++++
 usr/iscsi/iscsi_tcp.c  |    6 ++++++
 usr/iscsi/iscsid.c     |    2 +-
 usr/iscsi/transport.h  |    1 +
 4 files changed, 14 insertions(+), 1 deletion(-)

Index: tgt-1.0.8.4/usr/iscsi/transport.h
===================================================================
--- tgt-1.0.8.4.orig/usr/iscsi/transport.h
+++ tgt-1.0.8.4/usr/iscsi/transport.h
@@ -19,6 +19,7 @@ struct iscsi_transport {
 	int (*ep_init) (void);
 	void (*ep_exit) (void);
 	int (*ep_login_complete)(struct iscsi_connection *conn);
+	void (*ep_nexus_init)(struct iscsi_connection *conn);
 	struct iscsi_task *(*alloc_task)(struct iscsi_connection *conn,
 					 size_t ext_len);
 	void (*free_task)(struct iscsi_task *task);
Index: tgt-1.0.8.4/usr/iscsi/iscsid.c
===================================================================
--- tgt-1.0.8.4.orig/usr/iscsi/iscsid.c
+++ tgt-1.0.8.4/usr/iscsi/iscsid.c
@@ -2247,7 +2247,7 @@ finish:
 		else {
 			conn->state = STATE_SCSI;
 			conn_read_pdu(conn);
-			conn->tp->ep_event_modify(conn, EPOLLIN);
+			conn->tp->ep_nexus_init(conn);
 		}
 		break;
 	case STATE_EXIT:
Index: tgt-1.0.8.4/usr/iscsi/iscsi_rdma.c
===================================================================
--- tgt-1.0.8.4.orig/usr/iscsi/iscsi_rdma.c
+++ tgt-1.0.8.4/usr/iscsi/iscsi_rdma.c
@@ -1248,6 +1248,11 @@ static int iscsi_rdma_login_complete(str
 	return ret;
 }
 
+static void iscsi_rdma_nexus_init(struct iscsi_connection *conn)
+{
+       conn->tp->ep_event_modify(conn, EPOLLIN);
+}
+
 /*
  * Copy the remote va and stag that were temporarily saved in conn_info.
  */
@@ -1727,6 +1732,7 @@ static struct iscsi_transport iscsi_iser
 	.data_padding		= 1,
 	.ep_init		= iscsi_rdma_init,
 	.ep_login_complete	= iscsi_rdma_login_complete,
+	.ep_nexus_init		= iscsi_rdma_nexus_init,
 	.alloc_task		= iscsi_iser_alloc_task,
 	.free_task		= iscsi_iser_free_task,
 	.ep_read		= iscsi_iser_read,
Index: tgt-1.0.8.4/usr/iscsi/iscsi_tcp.c
===================================================================
--- tgt-1.0.8.4.orig/usr/iscsi/iscsi_tcp.c
+++ tgt-1.0.8.4/usr/iscsi/iscsi_tcp.c
@@ -263,6 +263,11 @@ static int iscsi_tcp_conn_login_complete
 	return 0;
 }
 
+static void iscsi_tcp_conn_nexus_init(struct iscsi_connection *conn)
+{
+	conn->tp->ep_event_modify(conn, EPOLLIN);
+}
+
 static size_t iscsi_tcp_read(struct iscsi_connection *conn, void *buf,
 			     size_t nbytes)
 {
@@ -391,6 +396,7 @@ static struct iscsi_transport iscsi_tcp 
 	.ep_init		= iscsi_tcp_init,
 	.ep_exit		= iscsi_tcp_exit,
 	.ep_login_complete	= iscsi_tcp_conn_login_complete,
+	.ep_nexus_init		= iscsi_tcp_conn_nexus_init,
 	.alloc_task		= iscsi_tcp_alloc_task,
 	.free_task		= iscsi_tcp_free_task,
 	.ep_read		= iscsi_tcp_read,
--
To unsubscribe from this list: send the line "unsubscribe stgt" in
the body of a message to majordomo at vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html



More information about the stgt mailing list