RE: [PATCH 05/12] qla4xxx: fix recovery timer and session unblock race

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



 
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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux