Merge pull request #50 from plieven/outqueue-fixes-v2
Outqueue fixes v2
This commit is contained in:
@@ -81,7 +81,11 @@ iscsi_send_data_out(struct iscsi_context *iscsi, struct iscsi_pdu *cmd_pdu,
|
|||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
}
|
}
|
||||||
pdu->scsi_cbdata.task = cmd_pdu->scsi_cbdata.task;
|
pdu->scsi_cbdata.task = cmd_pdu->scsi_cbdata.task;
|
||||||
|
/* set the cmdsn in the pdu struct so we can compare with
|
||||||
|
* maxcmdsn when sending to socket even if data-out pdus
|
||||||
|
* do not carry a cmdsn on the wire */
|
||||||
|
pdu->cmdsn = cmd_pdu->cmdsn;
|
||||||
|
|
||||||
if (tot_len == len) {
|
if (tot_len == len) {
|
||||||
flags = ISCSI_PDU_SCSI_FINAL;
|
flags = ISCSI_PDU_SCSI_FINAL;
|
||||||
@@ -203,6 +207,7 @@ iscsi_scsi_command_async(struct iscsi_context *iscsi, int lun,
|
|||||||
|
|
||||||
if (len > iscsi->first_burst_length) {
|
if (len > iscsi->first_burst_length) {
|
||||||
len = iscsi->first_burst_length;
|
len = iscsi->first_burst_length;
|
||||||
|
flags &= ~ISCSI_PDU_SCSI_FINAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
pdu->out_offset = 0;
|
pdu->out_offset = 0;
|
||||||
@@ -249,8 +254,11 @@ iscsi_scsi_command_async(struct iscsi_context *iscsi, int lun,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Can we send some unsolicited data ? */
|
/* Can we send some unsolicited data ? */
|
||||||
if (pdu->out_len != 0 && iscsi->use_initial_r2t == ISCSI_INITIAL_R2T_NO && iscsi->use_immediate_data == ISCSI_IMMEDIATE_DATA_NO) {
|
if (task->xfer_dir == SCSI_XFER_WRITE
|
||||||
uint32_t len = task->expxferlen - pdu->out_len;
|
&& iscsi->use_initial_r2t == ISCSI_INITIAL_R2T_NO
|
||||||
|
&& iscsi->use_immediate_data == ISCSI_IMMEDIATE_DATA_NO) {
|
||||||
|
|
||||||
|
uint32_t len = task->expxferlen;
|
||||||
|
|
||||||
if (len > iscsi->first_burst_length) {
|
if (len > iscsi->first_burst_length) {
|
||||||
len = iscsi->first_burst_length;
|
len = iscsi->first_burst_length;
|
||||||
|
|||||||
Reference in New Issue
Block a user