From: Alexander Nezhinsky <nezhinsky@xxxxxxxxx> Windows iscsi initiator failed to format devices because in read scsi commands, mainly READ(10), the last (but not the first) Data-IN pdu contained zero buffer offset. Obviously this may happen only with relatively small MaxRecvDSL, and relatively large cmd sizes, so that multiple Data-IN pdus are sent and the last one carrying the GOOD status. Linux sets much larger values of MaxRecvDSL than Windows, and employes relaxed checks of pdu correctness. It seems that it relies on DataSN and disregards buffer offset. The fix was to handle data-in with status and scsi resp separately. In addition a rectification is made for the tx pdu generation. This resend (v2) adds DIR_NONE case for tx pdu handling fix. When unhandled, connections were closed on TUR. Verified on Windows iscsi initiator. Alexander Nezhinsky (2): Fix buffer_offset set to 0 in the last Data-IN carrying status Create tx pdu by explicit scsi cmd dir (none, rd,wr,bidir) usr/iscsi/iscsid.c | 43 +++++++++++++++++++++++++++++++++++-------- 1 file changed, 35 insertions(+), 8 deletions(-) -- 1.7.1 -- To unsubscribe from this list: send the line "unsubscribe stgt" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html