diff options
author | Mike Christie <michaelc@cs.wisc.edu> | 2008-05-21 16:54:06 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2008-07-12 09:22:19 -0400 |
commit | 3e5c28ad0391389959ccae81c938c7533efb3490 (patch) | |
tree | bcfb02dc14afa91dd21fd59ec7c82f881be065c9 /include/scsi/libiscsi.h | |
parent | 052d014485d2ce5bb7fa8dd0df875dafd1db77df (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/libiscsi.h')
-rw-r--r-- | include/scsi/libiscsi.h | 29 |
1 files changed, 7 insertions, 22 deletions
diff --git a/include/scsi/libiscsi.h b/include/scsi/libiscsi.h index 9be6a70faff5..d1c36759b350 100644 --- a/include/scsi/libiscsi.h +++ b/include/scsi/libiscsi.h | |||
@@ -85,18 +85,6 @@ enum { | |||
85 | ISCSI_DIGEST_SIZE = sizeof(__u32), | 85 | ISCSI_DIGEST_SIZE = sizeof(__u32), |
86 | }; | 86 | }; |
87 | 87 | ||
88 | struct iscsi_mgmt_task { | ||
89 | /* | ||
90 | * Becuae LLDs allocate their hdr differently, this is a pointer to | ||
91 | * that storage. It must be setup at session creation time. | ||
92 | */ | ||
93 | struct iscsi_hdr *hdr; | ||
94 | char *data; /* mgmt payload */ | ||
95 | unsigned data_count; /* counts data to be sent */ | ||
96 | uint32_t itt; /* this ITT */ | ||
97 | void *dd_data; /* driver/transport data */ | ||
98 | struct list_head running; | ||
99 | }; | ||
100 | 88 | ||
101 | enum { | 89 | enum { |
102 | ISCSI_TASK_COMPLETED, | 90 | ISCSI_TASK_COMPLETED, |
@@ -121,6 +109,7 @@ struct iscsi_cmd_task { | |||
121 | /* offset in unsolicited stream (bytes); */ | 109 | /* offset in unsolicited stream (bytes); */ |
122 | unsigned unsol_offset; | 110 | unsigned unsol_offset; |
123 | unsigned data_count; /* remaining Data-Out */ | 111 | unsigned data_count; /* remaining Data-Out */ |
112 | char *data; /* mgmt payload */ | ||
124 | struct scsi_cmnd *sc; /* associated SCSI cmd*/ | 113 | struct scsi_cmnd *sc; /* associated SCSI cmd*/ |
125 | struct iscsi_conn *conn; /* used connection */ | 114 | struct iscsi_conn *conn; /* used connection */ |
126 | 115 | ||
@@ -162,7 +151,7 @@ struct iscsi_conn { | |||
162 | unsigned long last_ping; | 151 | unsigned long last_ping; |
163 | int ping_timeout; | 152 | int ping_timeout; |
164 | int recv_timeout; | 153 | int recv_timeout; |
165 | struct iscsi_mgmt_task *ping_mtask; | 154 | struct iscsi_cmd_task *ping_ctask; |
166 | 155 | ||
167 | /* iSCSI connection-wide sequencing */ | 156 | /* iSCSI connection-wide sequencing */ |
168 | uint32_t exp_statsn; | 157 | uint32_t exp_statsn; |
@@ -178,9 +167,8 @@ struct iscsi_conn { | |||
178 | * should always fit in this buffer | 167 | * should always fit in this buffer |
179 | */ | 168 | */ |
180 | char *data; | 169 | char *data; |
181 | struct iscsi_mgmt_task *login_mtask; /* mtask used for login/text */ | 170 | struct iscsi_cmd_task *login_ctask; /* mtask used for login/text */ |
182 | struct iscsi_mgmt_task *mtask; /* xmit mtask in progress */ | 171 | struct iscsi_cmd_task *ctask; /* xmit task in progress */ |
183 | struct iscsi_cmd_task *ctask; /* xmit ctask in progress */ | ||
184 | 172 | ||
185 | /* xmit */ | 173 | /* xmit */ |
186 | struct list_head mgmtqueue; /* mgmt (control) xmit queue */ | 174 | struct list_head mgmtqueue; /* mgmt (control) xmit queue */ |
@@ -295,12 +283,10 @@ struct iscsi_session { | |||
295 | int state; /* session state */ | 283 | int state; /* session state */ |
296 | int age; /* counts session re-opens */ | 284 | int age; /* counts session re-opens */ |
297 | 285 | ||
286 | int scsi_cmds_max; /* max scsi commands */ | ||
298 | int cmds_max; /* size of cmds array */ | 287 | int cmds_max; /* size of cmds array */ |
299 | struct iscsi_cmd_task **cmds; /* Original Cmds arr */ | 288 | struct iscsi_cmd_task **cmds; /* Original Cmds arr */ |
300 | struct iscsi_pool cmdpool; /* PDU's pool */ | 289 | struct iscsi_pool cmdpool; /* PDU's pool */ |
301 | int mgmtpool_max; /* size of mgmt array */ | ||
302 | struct iscsi_mgmt_task **mgmt_cmds; /* Original mgmt arr */ | ||
303 | struct iscsi_pool mgmtpool; /* Mgmt PDU's pool */ | ||
304 | }; | 290 | }; |
305 | 291 | ||
306 | struct iscsi_host { | 292 | struct iscsi_host { |
@@ -345,7 +331,7 @@ extern void iscsi_host_free(struct Scsi_Host *shost); | |||
345 | */ | 331 | */ |
346 | extern struct iscsi_cls_session * | 332 | extern struct iscsi_cls_session * |
347 | iscsi_session_setup(struct iscsi_transport *, struct Scsi_Host *shost, | 333 | iscsi_session_setup(struct iscsi_transport *, struct Scsi_Host *shost, |
348 | uint16_t, int, int, uint32_t); | 334 | uint16_t, int, uint32_t); |
349 | extern void iscsi_session_teardown(struct iscsi_cls_session *); | 335 | extern void iscsi_session_teardown(struct iscsi_cls_session *); |
350 | extern void iscsi_session_recovery_timedout(struct iscsi_cls_session *); | 336 | extern void iscsi_session_recovery_timedout(struct iscsi_cls_session *); |
351 | extern int iscsi_set_param(struct iscsi_cls_conn *cls_conn, | 337 | extern int iscsi_set_param(struct iscsi_cls_conn *cls_conn, |
@@ -388,8 +374,7 @@ extern int iscsi_complete_pdu(struct iscsi_conn *, struct iscsi_hdr *, | |||
388 | extern int iscsi_verify_itt(struct iscsi_conn *, itt_t); | 374 | extern int iscsi_verify_itt(struct iscsi_conn *, itt_t); |
389 | extern struct iscsi_cmd_task *iscsi_itt_to_ctask(struct iscsi_conn *, itt_t); | 375 | extern struct iscsi_cmd_task *iscsi_itt_to_ctask(struct iscsi_conn *, itt_t); |
390 | extern void iscsi_requeue_ctask(struct iscsi_cmd_task *ctask); | 376 | extern void iscsi_requeue_ctask(struct iscsi_cmd_task *ctask); |
391 | extern void iscsi_free_mgmt_task(struct iscsi_conn *conn, | 377 | extern void iscsi_put_ctask(struct iscsi_cmd_task *ctask); |
392 | struct iscsi_mgmt_task *mtask); | ||
393 | 378 | ||
394 | /* | 379 | /* |
395 | * generic helpers | 380 | * generic helpers |