]> git.baikalelectronics.ru Git - kernel.git/commit
scsi: libfc: quarantine timed out xids
authorHannes Reinecke <hare@suse.de>
Thu, 13 Oct 2016 13:10:50 +0000 (15:10 +0200)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 8 Nov 2016 22:29:52 +0000 (17:29 -0500)
commit7ea5b4bef1ae8bf8b34f0ab78a854cbd1daf7896
tree8931ec7605a437d59eb6e7edaff18d4cf031b01b
parente41aa219b4dc2d8685a4d99690b62f13c645671d
scsi: libfc: quarantine timed out xids

When a sequence times out we have no idea what happened to the
frame. And we do not know if we will ever receive the frame.
Hence we cannot re-use the xid as we would risk data corruption
if the xid had been re-used and the timed out frame would be
received after that.
So we need to quarantine the xid until the lport is reset.
Yes, I know this will (eventually) deplete the xid pool.
But for now it's the safest method.

Signed-off-by: Hannes Reinecke <hare@suse.com>
Reviewed-by: Bart Van Assche <bart.vanassche@sandisk.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/libfc/fc_exch.c
drivers/scsi/libfc/fc_fcp.c
include/scsi/libfc.h