From: Mike Christie <michaelc@xxxxxxxxxxx> qla2xxx is calling fc_block_scsi_eh, but it is not passing up TRANSPORT_FAILED if returned. Signed-off-by: Mike Christie <michaelc@xxxxxxxxxxx> --- drivers/scsi/qla2xxx/qla_os.c | 20 +++++++++++++++----- 1 files changed, 15 insertions(+), 5 deletions(-) diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c index bdd53f0..7523041 100644 --- a/drivers/scsi/qla2xxx/qla_os.c +++ b/drivers/scsi/qla2xxx/qla_os.c @@ -834,7 +834,9 @@ qla2xxx_eh_abort(struct scsi_cmnd *cmd) srb_t *spt; int got_ref = 0; - fc_block_scsi_eh(cmd); + ret = fc_block_scsi_eh(cmd); + if (ret) + return ret; if (!CMD_SP(cmd)) return SUCCESS; @@ -964,9 +966,11 @@ __qla2xxx_eh_generic_reset(char *name, enum nexus_wait_type type, { scsi_qla_host_t *vha = shost_priv(cmd->device->host); fc_port_t *fcport = (struct fc_port *) cmd->device->hostdata; - int err; + int err, ret; - fc_block_scsi_eh(cmd); + ret = fc_block_scsi_eh(cmd); + if (ret) + return ret; if (!fcport) return FAILED; @@ -1045,7 +1049,10 @@ qla2xxx_eh_bus_reset(struct scsi_cmnd *cmd) unsigned int id, lun; unsigned long serial; - fc_block_scsi_eh(cmd); + ret = fc_block_scsi_eh(cmd); + if (ret) + return ret; + ret = FAILED; id = cmd->device->id; lun = cmd->device->lun; @@ -1107,7 +1114,10 @@ qla2xxx_eh_host_reset(struct scsi_cmnd *cmd) unsigned long serial; scsi_qla_host_t *base_vha = pci_get_drvdata(ha->pdev); - fc_block_scsi_eh(cmd); + ret = fc_block_scsi_eh(cmd); + if (ret) + return ret; + ret = FAILED; id = cmd->device->id; lun = cmd->device->lun; -- 1.7.2.2 -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html