aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/lpfc
diff options
context:
space:
mode:
authorMike Christie <michaelc@cs.wisc.edu>2011-02-25 14:04:27 -0600
committerJames Bottomley <James.Bottomley@suse.de>2011-02-28 11:17:44 -0600
commitf55ca84d92d0c249ce4f4b8d493657a59c359c5d (patch)
tree40bec986cc1f783efbb932c014ea146655b206a0 /drivers/scsi/lpfc
parent76f0c37a26b48522a1f4051a7b8d091fc3e545d5 (diff)
downloadkernel_samsung_smdk4412-f55ca84d92d0c249ce4f4b8d493657a59c359c5d.zip
kernel_samsung_smdk4412-f55ca84d92d0c249ce4f4b8d493657a59c359c5d.tar.gz
kernel_samsung_smdk4412-f55ca84d92d0c249ce4f4b8d493657a59c359c5d.tar.bz2
[SCSI] lpfc: force retry in queuecommand when port is transitioning
If the port takes a while to transition we could exhaust the retries when using DID_TRANSPORT_DISRUPTED. For this case we do not want to use any of the cmd's retries, because if the command was running then when it got failed the retry counter was already incremented. And if this is the first time we are seeing the command, (it got queued because it slipped through during the race) then it should not have its retries incremented. The fc class will decide the correct handling later. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Acked-by: James Smart <james.smart@emulex.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/lpfc')
-rw-r--r--drivers/scsi/lpfc/lpfc_scsi.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/scsi/lpfc/lpfc_scsi.c b/drivers/scsi/lpfc/lpfc_scsi.c
index 1255b9d..ff20abd 100644
--- a/drivers/scsi/lpfc/lpfc_scsi.c
+++ b/drivers/scsi/lpfc/lpfc_scsi.c
@@ -3058,7 +3058,7 @@ lpfc_queuecommand_lck(struct scsi_cmnd *cmnd, void (*done) (struct scsi_cmnd *))
* transport is still transitioning.
*/
if (!ndlp || !NLP_CHK_NODE_ACT(ndlp)) {
- cmnd->result = ScsiResult(DID_TRANSPORT_DISRUPTED, 0);
+ cmnd->result = ScsiResult(DID_IMM_RETRY, 0);
goto out_fail_command;
}
if (atomic_read(&ndlp->cmd_pending) >= ndlp->cmd_qdepth)