Mike Christie wrote : > If qla4xxx is resetting up a session and the recovery timer > fires we do not want to just set it to dead, because > the dpc thread could have just set it to online and is in the > middle of resetting it up. > > Signed-off-by: Mike Christie <michaelc@xxxxxxxxxxx> > --- > drivers/scsi/qla4xxx/ql4_os.c | 19 +++++++++++-------- > 1 files changed, 11 insertions(+), 8 deletions(-) > > diff --git a/drivers/scsi/qla4xxx/ql4_os.c > b/drivers/scsi/qla4xxx/ql4_os.c > index 437d169..d4dd149 100644 > --- a/drivers/scsi/qla4xxx/ql4_os.c > +++ b/drivers/scsi/qla4xxx/ql4_os.c > @@ -124,16 +124,19 @@ static void > qla4xxx_recovery_timedout(struct iscsi_cls_session *session) > struct ddb_entry *ddb_entry = session->dd_data; > struct scsi_qla_host *ha = ddb_entry->ha; > > - DEBUG2(printk("scsi%ld: %s: index [%d] port down retry > count of (%d) " > - "secs exhausted, marking device DEAD.\n", > ha->host_no, > - __func__, ddb_entry->fw_ddb_index, > - ha->port_down_retry_count)); > + if (atomic_read(&ddb_entry->state) != DDB_STATE_ONLINE) { > + atomic_set(&ddb_entry->state, DDB_STATE_DEAD); > > - atomic_set(&ddb_entry->state, DDB_STATE_DEAD); > + DEBUG2(printk("scsi%ld: %s: index [%d] port > down retry count " > + "of (%d) secs exhausted, marking > device DEAD.\n", > + ha->host_no, __func__, > ddb_entry->fw_ddb_index, > + ha->port_down_retry_count)); > > - DEBUG2(printk("scsi%ld: %s: scheduling dpc routine - > dpc flags = " > - "0x%lx\n", ha->host_no, __func__, ha->dpc_flags)); > - queue_work(ha->dpc_thread, &ha->dpc_work); > + DEBUG2(printk("scsi%ld: %s: scheduling dpc > routine - dpc " > + "flags = 0x%lx\n", > + ha->host_no, __func__, ha->dpc_flags)); > + queue_work(ha->dpc_thread, &ha->dpc_work); > + } > } > > static int qla4xxx_host_get_param(struct Scsi_Host *shost, > -- > 1.5.2.1 Acked by David Somayajulu <david.somayajulu@xxxxxxxxxx> - 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