diff options
author | Mike Christie <michaelc@cs.wisc.edu> | 2008-09-24 16:46:09 (GMT) |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2008-10-13 13:28:58 (GMT) |
commit | 1d9edf0270cb5a434d32e95279ce9493581906b3 (patch) | |
tree | 1b54cdd2c8b18e78a788d7f1f3c17c7b73043c24 /include/scsi/libiscsi.h | |
parent | cbdc14459bd7d99d20341ec057b8f4ffab2a7fb6 (diff) | |
download | linux-1d9edf0270cb5a434d32e95279ce9493581906b3.tar.xz |
[SCSI] libiscsi: fix data corruption when target has to resend data-in packets
iscsi_tcp was updating the exp_statsn (exp_statsn acknowledges
status and tells the target it is ok to let the resources for
a iscsi pdu to be reused) before it got all the data for pdu read
into OS buffers. Data corruption was occuring if something happens
to a packet and the network layer requests a retransmit, and the
initiator has told the target about the udpated exp_statsn ack,
then the target may be sending data from a buffer it has reused
for a new iscsi pdu. This fixes the problem by having the LLD
(iscsi_tcp in this case) just handle the transferring of data, and
has libiscsi handle the processing of status (libiscsi completion
processing is done after LLD data transfers are complete).
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'include/scsi/libiscsi.h')
0 files changed, 0 insertions, 0 deletions