[SCSI] qla4xxx: use iscsi class session state check ready
This has qla4xxx use the iscsi class's check ready function in the queue command function, so all iscsi drivers return the same error value for common problems. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Cc: David Somayajulu <david.somayajulu@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
This commit is contained in:
parent
b635930de9
commit
7fb1921b07
1 changed files with 12 additions and 0 deletions
|
@ -398,9 +398,21 @@ static int qla4xxx_queuecommand(struct scsi_cmnd *cmd,
|
|||
{
|
||||
struct scsi_qla_host *ha = to_qla_host(cmd->device->host);
|
||||
struct ddb_entry *ddb_entry = cmd->device->hostdata;
|
||||
struct iscsi_cls_session *sess = ddb_entry->sess;
|
||||
struct srb *srb;
|
||||
int rval;
|
||||
|
||||
if (!sess) {
|
||||
cmd->result = DID_IMM_RETRY << 16;
|
||||
goto qc_fail_command;
|
||||
}
|
||||
|
||||
rval = iscsi_session_chkready(sess);
|
||||
if (rval) {
|
||||
cmd->result = rval;
|
||||
goto qc_fail_command;
|
||||
}
|
||||
|
||||
if (atomic_read(&ddb_entry->state) != DDB_STATE_ONLINE) {
|
||||
if (atomic_read(&ddb_entry->state) == DDB_STATE_DEAD) {
|
||||
cmd->result = DID_NO_CONNECT << 16;
|
||||
|
|
Loading…
Add table
Reference in a new issue