changeset 11289:05d793015d42

6896446 iscsit does not set ExpDataSN field in the status response
author Priya Krishnan <Priya.Krishnan@Sun.COM>
date Wed, 09 Dec 2009 13:00:41 -0500
parents b478048adb24
children 0e798b22ab58
files usr/src/uts/common/io/comstar/port/iscsit/iscsit.c
diffstat 1 files changed, 14 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/usr/src/uts/common/io/comstar/port/iscsit/iscsit.c	Wed Dec 09 05:41:55 2009 -0800
+++ b/usr/src/uts/common/io/comstar/port/iscsit/iscsit.c	Wed Dec 09 13:00:41 2009 -0500
@@ -1544,6 +1544,17 @@
 
 		rsp = (iscsi_scsi_rsp_hdr_t *)pdu->isp_hdr;
 		rsp->itt = itask->it_itt;
+		/*
+		 * ExpDataSN is the number of R2T and Data-In (read)
+		 * PDUs the target has sent for the SCSI command.
+		 *
+		 * Since there is no support for bidirectional transfer
+		 * yet, either idt_exp_datasn or idt_exp_rttsn, but not
+		 * both is valid at any time
+		 */
+		rsp->expdatasn = (itask->it_idm_task->idt_exp_datasn != 0) ?
+		    htonl(itask->it_idm_task->idt_exp_datasn):
+		    htonl(itask->it_idm_task->idt_exp_rttsn);
 		rsp->cmd_status = task->task_scsi_status;
 		iscsit_pdu_tx(pdu);
 		return (STMF_SUCCESS);
@@ -1580,6 +1591,9 @@
 		rsp->residual_count = htonl(task->task_resid);
 		rsp->itt = itask->it_itt;
 		rsp->response = ISCSI_STATUS_CMD_COMPLETED;
+		rsp->expdatasn = (itask->it_idm_task->idt_exp_datasn != 0) ?
+		    htonl(itask->it_idm_task->idt_exp_datasn):
+		    htonl(itask->it_idm_task->idt_exp_rttsn);
 		rsp->cmd_status = task->task_scsi_status;
 		if (task->task_sense_length != 0) {
 			/*