From: Mike Christie <michaelc@xxxxxxxxxxx> This patch converts the iscsi drivers to the new host byte values Signed-off-by: Mike Christie <michaelc@xxxxxxxxxxx> --- drivers/scsi/libiscsi.c | 21 ++++++++++++--------- drivers/scsi/qla4xxx/ql4_isr.c | 2 +- drivers/scsi/scsi_transport_iscsi.c | 4 ++-- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/drivers/scsi/libiscsi.c b/drivers/scsi/libiscsi.c index f4e1a1b..455bbfd 100644 --- a/drivers/scsi/libiscsi.c +++ b/drivers/scsi/libiscsi.c @@ -779,20 +779,23 @@ int iscsi_queuecommand(struct scsi_cmnd * be entering our queuecommand while a block is starting * up because the block code is not locked) */ - if (session->state == ISCSI_STATE_IN_RECOVERY) { + switch (session->state) { + case ISCSI_STATE_IN_RECOVERY: reason = FAILURE_SESSION_IN_RECOVERY; - goto reject; - } - - if (session->state == ISCSI_STATE_RECOVERY_FAILED) { + sc->result = DID_TRANSPORT_BLOCKED << 16; + break; + case ISCSI_STATE_RECOVERY_FAILED: reason = FAILURE_SESSION_RECOVERY_TIMEOUT; - sc->result = DID_IMM_RETRY << 16; - } else if (session->state == ISCSI_STATE_TERMINATE) { + sc->result = DID_TRANSPORT_FAILFAST << 16; + break; + case ISCSI_STATE_TERMINATE: reason = FAILURE_SESSION_TERMINATE; sc->result = DID_NO_CONNECT << 16; - } else { + break; + default: reason = FAILURE_SESSION_FREED; sc->result = DID_NO_CONNECT << 16; + break; } goto fault; } @@ -1782,7 +1785,7 @@ static void iscsi_start_session_recovery */ spin_lock_bh(&session->lock); fail_all_commands(conn, - STOP_CONN_RECOVER ? DID_BUS_BUSY : DID_ERROR); + STOP_CONN_RECOVER ? DID_TRANSPORT_FAILFAST : DID_ERROR); flush_control_queues(session, conn); spin_unlock_bh(&session->lock); diff --git a/drivers/scsi/qla4xxx/ql4_isr.c b/drivers/scsi/qla4xxx/ql4_isr.c index 35b9e36..31a786a 100644 --- a/drivers/scsi/qla4xxx/ql4_isr.c +++ b/drivers/scsi/qla4xxx/ql4_isr.c @@ -267,7 +267,7 @@ static void qla4xxx_status_entry(struct if (atomic_read(&ddb_entry->state) == DDB_STATE_ONLINE) qla4xxx_mark_device_missing(ha, ddb_entry); - cmd->result = DID_BUS_BUSY << 16; + cmd->result = DID_BLOCKED_TRANSPORT << 16; break; case SCS_QUEUE_FULL: diff --git a/drivers/scsi/scsi_transport_iscsi.c b/drivers/scsi/scsi_transport_iscsi.c index 373167b..87e6ffe 100644 --- a/drivers/scsi/scsi_transport_iscsi.c +++ b/drivers/scsi/scsi_transport_iscsi.c @@ -233,10 +233,10 @@ int iscsi_session_chkready(struct iscsi_ err = 0; break; case ISCSI_SESSION_FAILED: - err = DID_IMM_RETRY << 16; + err = DID_TRANSPORT_BLOCKED << 16; break; case ISCSI_SESSION_FREE: - err = DID_NO_CONNECT << 16; + err = DID_TRANSPORT_FAILFAST << 16; break; default: err = DID_NO_CONNECT << 16; -- 1.4.1.1 - 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