aboutsummaryrefslogtreecommitdiffstats
path: root/include/scsi/scsi_transport_iscsi.h
diff options
context:
space:
mode:
authorMike Christie <michaelc@cs.wisc.edu>2008-05-21 16:54:06 -0400
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2008-07-12 09:22:19 -0400
commit3e5c28ad0391389959ccae81c938c7533efb3490 (patch)
treebcfb02dc14afa91dd21fd59ec7c82f881be065c9 /include/scsi/scsi_transport_iscsi.h
parent052d014485d2ce5bb7fa8dd0df875dafd1db77df (diff)
[SCSI] libiscsi: merge iscsi_mgmt_task and iscsi_cmd_task
There is no need to have the mgmt and cmd tasks separate structs. It used to save a lot of memory when we overprealocated memory for tasks, but the next patches will set up the driver so in the future they can use a mempool or some other common scsi command allocator and common tagging. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'include/scsi/scsi_transport_iscsi.h')
-rw-r--r--include/scsi/scsi_transport_iscsi.h41
1 files changed, 19 insertions, 22 deletions
diff --git a/include/scsi/scsi_transport_iscsi.h b/include/scsi/scsi_transport_iscsi.h
index 4028f121d548..3f24503dfdf9 100644
--- a/include/scsi/scsi_transport_iscsi.h
+++ b/include/scsi/scsi_transport_iscsi.h
@@ -34,7 +34,6 @@ struct Scsi_Host;
34struct iscsi_cls_conn; 34struct iscsi_cls_conn;
35struct iscsi_conn; 35struct iscsi_conn;
36struct iscsi_cmd_task; 36struct iscsi_cmd_task;
37struct iscsi_mgmt_task;
38struct sockaddr; 37struct sockaddr;
39 38
40/** 39/**
@@ -58,19 +57,22 @@ struct sockaddr;
58 * @stop_conn: suspend/recover/terminate connection 57 * @stop_conn: suspend/recover/terminate connection
59 * @send_pdu: send iSCSI PDU, Login, Logout, NOP-Out, Reject, Text. 58 * @send_pdu: send iSCSI PDU, Login, Logout, NOP-Out, Reject, Text.
60 * @session_recovery_timedout: notify LLD a block during recovery timed out 59 * @session_recovery_timedout: notify LLD a block during recovery timed out
61 * @init_cmd_task: Initialize a iscsi_cmd_task and any internal structs. 60 * @init_task: Initialize a iscsi_task and any internal structs.
62 * Called from queuecommand with session lock held. 61 * When offloading the data path, this is called from
63 * @init_mgmt_task: Initialize a iscsi_mgmt_task and any internal structs. 62 * queuecommand with the session lock, or from the
64 * Called from iscsi_conn_send_generic with xmitmutex. 63 * iscsi_conn_send_pdu context with the session lock.
65 * @xmit_cmd_task: Requests LLD to transfer cmd task. Returns 0 or the 64 * When not offloading the data path, this is called
65 * from the scsi work queue without the session lock.
66 * @xmit_task Requests LLD to transfer cmd task. Returns 0 or the
66 * the number of bytes transferred on success, and -Exyz 67 * the number of bytes transferred on success, and -Exyz
67 * value on error. 68 * value on error. When offloading the data path, this
68 * @xmit_mgmt_task: Requests LLD to transfer mgmt task. Returns 0 or the 69 * is called from queuecommand with the session lock, or
69 * the number of bytes transferred on success, and -Exyz 70 * from the iscsi_conn_send_pdu context with the session
70 * value on error. 71 * lock. When not offloading the data path, this is called
71 * @cleanup_cmd_task: requests LLD to fail cmd task. Called with xmitmutex 72 * from the scsi work queue without the session lock.
72 * and session->lock after the connection has been 73 * @cleanup_task: requests LLD to fail task. Called with session lock
73 * suspended and terminated during recovery. If called 74 * and after the connection has been suspended and
75 * terminated during recovery. If called
74 * from abort task then connection is not suspended 76 * from abort task then connection is not suspended
75 * or terminated but sk_callback_lock is held 77 * or terminated but sk_callback_lock is held
76 * 78 *
@@ -110,15 +112,10 @@ struct iscsi_transport {
110 char *data, uint32_t data_size); 112 char *data, uint32_t data_size);
111 void (*get_stats) (struct iscsi_cls_conn *conn, 113 void (*get_stats) (struct iscsi_cls_conn *conn,
112 struct iscsi_stats *stats); 114 struct iscsi_stats *stats);
113 int (*init_cmd_task) (struct iscsi_cmd_task *ctask); 115 int (*init_task) (struct iscsi_cmd_task *task);
114 void (*init_mgmt_task) (struct iscsi_conn *conn, 116 int (*xmit_task) (struct iscsi_cmd_task *task);
115 struct iscsi_mgmt_task *mtask); 117 void (*cleanup_task) (struct iscsi_conn *conn,
116 int (*xmit_cmd_task) (struct iscsi_conn *conn, 118 struct iscsi_cmd_task *task);
117 struct iscsi_cmd_task *ctask);
118 void (*cleanup_cmd_task) (struct iscsi_conn *conn,
119 struct iscsi_cmd_task *ctask);
120 int (*xmit_mgmt_task) (struct iscsi_conn *conn,
121 struct iscsi_mgmt_task *mtask);
122 void (*session_recovery_timedout) (struct iscsi_cls_session *session); 119 void (*session_recovery_timedout) (struct iscsi_cls_session *session);
123 int (*ep_connect) (struct sockaddr *dst_addr, int non_blocking, 120 int (*ep_connect) (struct sockaddr *dst_addr, int non_blocking,
124 uint64_t *ep_handle); 121 uint64_t *ep_handle);