lpfc 8.2.8 : Update driver to use new Host byte error code DID_TRANSPORT_DISRUPTED
Subsystems (2)
PATCH 11/15 lpfc 8.2.8 : Update driver to use new Host byte error code DID_TRANSPORT_DISRUPTED
Update driver to use new Host byte error code DID_TRANSPORT_DISRUPTED.
This patch depends pending upstream patches described in:
http://marc.info/?l=linux-scsi&m=121263014808604&w=2
Particularly:
http://marc.info/?l=linux-scsi&m=121263014908607&w=2
which defines DID_TRANSPORT_DISRUPTED.
This patch supercedes the lpfc patch in that series:
http://marc.info/?l=linux-scsi&m=121263015008616&w=2
---
lpfc_scsi.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)
drivers/scsi/lpfc/lpfc_scsi.c +4 -3
@@ -653,7 +653,7 @@ lpfc_scsi_cmd_iocb_cmpl(struct lpfc_hbabreak ;case IOSTAT_NPORT_BSY :case IOSTAT_FABRIC_BSY : - cmd->result =ScsiResult (DID_BUS_BUSY ,0 ); + cmd->result =ScsiResult (DID_TRANSPORT_DISRUPTED ,0 );break ;case IOSTAT_LOCAL_REJECT : if (lpfc_cmd->result == IOERR_INVALID_RPI ||
@@ -669,7 +669,8 @@ lpfc_scsi_cmd_iocb_cmpl(struct lpfc_hbaif (!pnode || !NLP_CHK_NODE_ACT (pnode) || (pnode->nlp_state !=NLP_STE_MAPPED_NODE )) - cmd->result =ScsiResult (DID_BUS_BUSY ,SAM_STAT_BUSY ); + cmd->result =ScsiResult (DID_TRANSPORT_DISRUPTED , +SAM_STAT_BUSY ); }else { cmd->result =ScsiResult (DID_OK ,0 ); }
@@ -1071,7 +1072,7 @@ lpfc_queuecommand(struct scsi_cmnd *cmnd* transport is still transitioning. */ if (!ndlp || !NLP_CHK_NODE_ACT (ndlp)) { - cmnd->result =ScsiResult (DID_BUS_BUSY ,0 ); + cmnd->result =ScsiResult (DID_TRANSPORT_DISRUPTED ,0 ); goto out_fail_command; } lpfc_cmd =lpfc_get_scsi_buf (phba);
James Bottomley
maintainerQuoted 11 lines · James Smart
Update driver to use new Host byte error code
DID_TRANSPORT_DISRUPTED.This patch depends pending upstream patches described in:
http://marc.info/?l=linux-scsi&m=121263014808604&w=2Particularly:
http://marc.info/?l=linux-scsi&m=121263014908607&w=2
which definesDID_TRANSPORT_DISRUPTED.This patch supercedes the lpfc patch in that series:
http://marc.info/?l=linux-scsi&m=121263015008616&w=2
I've got this one, but only partially. The third hunk doesn't apply:
--- 1072,1078 ----
* transport is still transitioning.
*/
if (!ndlp || !NLP_CHK_NODE_ACT(ndlp)) {
+ cmnd->result = ScsiResult(DID_TRANSPORT_DISRUPTED, 0);
goto out_fail_command;
}
It became a goto out_target_busy, which returns SCSI_MLQUEUE_TARGET_BUSY via a patch which you acked.
James
Quoted 6 lines · James Bottomley
Quoted 5 lines · James Smart
Update driver to use new Host byte error code
DID_TRANSPORT_DISRUPTED.This patch depends pending upstream patches described in:
http://marc.info/?l=linux-scsi&m=121263014808604&w=2
Quoted 9 lines
Quoted 6 lines
Particularly:
http://marc.info/?l=linux-scsi&m=121263014908607&w=2
which definesDID_TRANSPORT_DISRUPTED.This patch supercedes the lpfc patch in that series:
http://marc.info/?l=linux-scsi&m=121263015008616&w=2I've got this one, but only partially. The third hunk doesn't apply:
It is ok and better to drop this part below for target busy. If we return target busy in the queuecommand then the we will block it right away. If we return DID_TRANSPORT_DISRUPTED then it will not get blocked until the soft irq processes the command, which is a waste.
Quoted 11 lines
--- 1072,1078 ----
* transport is still transitioning.
*/
if (!ndlp || !NLP_CHK_NODE_ACT(ndlp)) {drivers/scsi/lpfc/lpfc_scsi.c +1
-0+ cmnd->result =ScsiResult (DID_TRANSPORT_DISRUPTED ,0 ); goto out_fail_command; }It became a goto
out_target_busy, which returnsSCSI_MLQUEUE_TARGET_BUSYvia a patch which you acked.
Sorry about that. We were not sure which parts of which patchset you were going to take so some wires got crossed.