aboutsummaryrefslogtreecommitdiffstats
path: root/include/scsi
diff options
context:
space:
mode:
authorMike Christie <michaelc@cs.wisc.edu>2006-08-31 18:09:24 -0400
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>2006-09-02 14:37:04 -0400
commitffd0436ed2e5a741c8d30062b489b989acf0a526 (patch)
tree037433a76a116c67d3f074c5a83305be8241a8e5 /include/scsi
parente5b3cd42960a10c1bc3701d4f00767463c88ec9d (diff)
[SCSI] libiscsi, iscsi_tcp, iscsi_iser: check that burst lengths are valid.
iSCSI RFC states that the first burst length must be smaller than the max burst length. We currently assume targets will be good, but that may not be the case, so this patch adds a check. This patch also moves the unsol data out offset to the lib so the LLDs do not have to track it. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'include/scsi')
-rw-r--r--include/scsi/libiscsi.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/include/scsi/libiscsi.h b/include/scsi/libiscsi.h
index 41904f611d12..4900650bd081 100644
--- a/include/scsi/libiscsi.h
+++ b/include/scsi/libiscsi.h
@@ -102,6 +102,8 @@ struct iscsi_cmd_task {
102 uint32_t unsol_datasn; 102 uint32_t unsol_datasn;
103 int imm_count; /* imm-data (bytes) */ 103 int imm_count; /* imm-data (bytes) */
104 int unsol_count; /* unsolicited (bytes)*/ 104 int unsol_count; /* unsolicited (bytes)*/
105 /* offset in unsolicited stream (bytes); */
106 int unsol_offset;
105 int data_count; /* remaining Data-Out */ 107 int data_count; /* remaining Data-Out */
106 struct scsi_cmnd *sc; /* associated SCSI cmd*/ 108 struct scsi_cmnd *sc; /* associated SCSI cmd*/
107 int total_length; 109 int total_length;
@@ -290,8 +292,7 @@ extern int iscsi_conn_get_param(struct iscsi_cls_conn *cls_conn,
290extern int iscsi_check_assign_cmdsn(struct iscsi_session *, 292extern int iscsi_check_assign_cmdsn(struct iscsi_session *,
291 struct iscsi_nopin *); 293 struct iscsi_nopin *);
292extern void iscsi_prep_unsolicit_data_pdu(struct iscsi_cmd_task *, 294extern void iscsi_prep_unsolicit_data_pdu(struct iscsi_cmd_task *,
293 struct iscsi_data *hdr, 295 struct iscsi_data *hdr);
294 int transport_data_cnt);
295extern int iscsi_conn_send_pdu(struct iscsi_cls_conn *, struct iscsi_hdr *, 296extern int iscsi_conn_send_pdu(struct iscsi_cls_conn *, struct iscsi_hdr *,
296 char *, uint32_t); 297 char *, uint32_t);
297extern int iscsi_complete_pdu(struct iscsi_conn *, struct iscsi_hdr *, 298extern int iscsi_complete_pdu(struct iscsi_conn *, struct iscsi_hdr *,