Mercurial > illumos > illumos-gate
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) { /*