aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVasu Dev <vasu.dev@intel.com>2010-10-08 20:12:15 -0400
committerJames Bottomley <James.Bottomley@suse.de>2010-10-25 16:11:31 -0400
commit75eee7252466342e0dfa6675106bcd3955090f67 (patch)
tree425b0946272f0c5207ad8b02ceba17b942ea9068
parent73b4376477672a4336cba5f26ede2e277511ce70 (diff)
[SCSI] libfc: use DID_TRANSPORT_DISRUPTED while lport not ready
This is per Mile Christie feedback since in this case IO could get retried for tape devices and therefore DID_REQUEUE cannot be used, more details in this thread. http://marc.info/?l=linux-scsi&m=127970522630136&w=2 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>
-rw-r--r--drivers/scsi/libfc/fc_fcp.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/scsi/libfc/fc_fcp.c b/drivers/scsi/libfc/fc_fcp.c
index c797f6b48f05..43866e6d0bf2 100644
--- a/drivers/scsi/libfc/fc_fcp.c
+++ b/drivers/scsi/libfc/fc_fcp.c
@@ -1971,10 +1971,8 @@ static void fc_io_compl(struct fc_fcp_pkt *fsp)
1971 break; 1971 break;
1972 } 1972 }
1973 1973
1974 if (lport->state != LPORT_ST_READY && fsp->status_code != FC_COMPLETE) { 1974 if (lport->state != LPORT_ST_READY && fsp->status_code != FC_COMPLETE)
1975 sc_cmd->result = (DID_REQUEUE << 16); 1975 sc_cmd->result = (DID_TRANSPORT_DISRUPTED << 16);
1976 FC_FCP_DBG(fsp, "Returning DID_REQUEUE to scsi-ml\n");
1977 }
1978 1976
1979 spin_lock_irqsave(&si->scsi_queue_lock, flags); 1977 spin_lock_irqsave(&si->scsi_queue_lock, flags);
1980 list_del(&fsp->list); 1978 list_del(&fsp->list);