summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVasu Dev <vasu.dev@intel.com>2009-02-27 18:54:46 (GMT)
committerJames Bottomley <James.Bottomley@HansenPartnership.com>2009-03-06 21:36:56 (GMT)
commit78342da3682ec843e3e6301af5c723c88a46c408 (patch)
tree0390655e7f80617db0948e830574de23aef12e1d
parent571f824c3cd7b7f5a40ba100f7e576b6b0fe826a (diff)
downloadlinux-fsl-qoriq-78342da3682ec843e3e6301af5c723c88a46c408.tar.xz
[SCSI] libfc: handle RRQ exch timeout
Cleanup exchange held due to RRQ when RRQ exch times out, in this case the ABTS is already done causing RRQ req therefore proceeding with cleanup in fc_exch_rrq_resp should be okay to restore exch resource. 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@HansenPartnership.com>
-rw-r--r--drivers/scsi/libfc/fc_exch.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/scsi/libfc/fc_exch.c b/drivers/scsi/libfc/fc_exch.c
index a09416f..e874e77 100644
--- a/drivers/scsi/libfc/fc_exch.c
+++ b/drivers/scsi/libfc/fc_exch.c
@@ -1608,7 +1608,7 @@ static void fc_exch_rrq_resp(struct fc_seq *sp, struct fc_frame *fp, void *arg)
if (IS_ERR(fp)) {
int err = PTR_ERR(fp);
- if (err == -FC_EX_CLOSED)
+ if (err == -FC_EX_CLOSED || err == -FC_EX_TIMEOUT)
goto cleanup;
FC_DBG("Cannot process RRQ, because of frame error %d\n", err);
return;