| From: Vasu Dev <vasu.dev@intel.com> |
| Subject: libfc: handle RRQ exch timeout |
| References: bnc #465596 |
| |
| 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> |
| Acked-by: Bernhard Walle <bwalle@suse.de> |
| --- |
| |
| drivers/scsi/libfc/fc_exch.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| |
| --- a/drivers/scsi/libfc/fc_exch.c |
| +++ b/drivers/scsi/libfc/fc_exch.c |
| @@ -1605,7 +1605,7 @@ static void fc_exch_rrq_resp(struct fc_s |
| 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; |
| |