[SCSI] libiscsi_tcp: update recv tracking for each skb instead of iscsi pdu
authorMike Christie <michaelc@cs.wisc.edu>
Wed, 13 May 2009 22:57:44 +0000 (17:57 -0500)
committerJames Bottomley <James.Bottomley@HansenPartnership.com>
Sat, 23 May 2009 20:44:11 +0000 (15:44 -0500)
commitd1acfae514425d680912907c6554852f1e258551
tree54cf742c2b988d2a728c68d3ac8be9f0212e4f49
parent26013ad4c43f49a038a6489c35e9b901491339fe
[SCSI] libiscsi_tcp: update recv tracking for each skb instead of iscsi pdu

Everytime we read in a pdu libiscsi will update a tracking field.
It uses this to decide when to check if the transport might be bad.
If we have not got data in recv_timeout seconds then we will
send a iscsi ping/nop.

If we are on a slow link then it could take a while to read in all
the data for a data_in. In that case we might send a ping/nop when
we do not need to or we might drop a session thinking it is bad
when the lower layer is making forward progress on it.

This patch has libiscsi_tcp update the recv tracking for each skb
(basically network packet from our point of view) instead of the
entire iscsi pdu+data, so we account for these cases where data is
coming in slowly.

Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
drivers/scsi/libiscsi_tcp.c