]> git.baikalelectronics.ru Git - kernel.git/commit
[SCSI] libfc: fix fcp pkt recovery in fc_fcp_recv_data
authorVasu Dev <vasu.dev@intel.com>
Sat, 13 Mar 2010 00:08:44 +0000 (16:08 -0800)
committerJames Bottomley <James.Bottomley@suse.de>
Sun, 11 Apr 2010 14:23:42 +0000 (09:23 -0500)
commit233fb9b1f510e68067db5fee19fea74d3f64811f
tree802e2e53f57361a6d3899bee226354813c94597f
parentdf7ec820f26f30c3c8389f0f5b9c9ce6987e3d67
[SCSI] libfc: fix fcp pkt recovery in fc_fcp_recv_data

Currently fc_fcp_recv_data calls fc_fcp_retry_cmd to
retry failed IO but in this case tgt is still sending
data frames, therefore exchange needs to be aborted
first before initiating retry. So this patch fixes
this by aborting exchange first then have retry.

Renames fc_timeout_error to fc_fcp_recovery since
fc_timeout_error is already called from several other
places beside from fcp timeout handler and then
used fc_fcp_recovery for abort & retry from
fc_fcp_recv_data, this rename also required renaming
FC_CMD_TIME_OUT status to FC_CMD_RECOVERY to be
consistent with new fc_fcp_recovery.

Data frames are not expected for an DDPed exchange and
potentially it could be tampered data frame, so does
recovery in this case by calling fc_fcp_recovery.

Signed-off-by: Vasu Dev <vasu.dev@intel.com>
Signed-off-by: Robert Love <robert.w.love@intel.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/scsi/libfc/fc_fcp.c