From f8b95efcc008b9516ac692381fb1550ada26fdd5 Mon Sep 17 00:00:00 2001 From: Chad Dupuis Date: Wed, 27 Jan 2016 12:03:37 -0500 Subject: [PATCH] qla2xxx: Set relogin flag when we fail to queue login requests. If we fail to queue an srb for an async login we should set the relogin flag so it will be retried as the reason for the queuing failure was most likely transient. Failure to do this can lead to failed paths as login is never retried if the relogin flag is not set. Signed-off-by: Chad Dupuis Signed-off-by: Himanshu Madhani Reviewed-by: Johannes Thumshirn Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen --- drivers/scsi/qla2xxx/qla_init.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c index 8001c89fe998..184b6b697fb1 100644 --- a/drivers/scsi/qla2xxx/qla_init.c +++ b/drivers/scsi/qla2xxx/qla_init.c @@ -157,8 +157,12 @@ qla2x00_async_login(struct scsi_qla_host *vha, fc_port_t *fcport, if (data[1] & QLA_LOGIO_LOGIN_RETRIED) lio->u.logio.flags |= SRB_LOGIN_RETRIED; rval = qla2x00_start_sp(sp); - if (rval != QLA_SUCCESS) + if (rval != QLA_SUCCESS) { + fcport->flags &= ~FCF_ASYNC_SENT; + fcport->flags |= FCF_LOGIN_NEEDED; + set_bit(RELOGIN_NEEDED, &vha->dpc_flags); goto done_free_sp; + } ql_dbg(ql_dbg_disc, vha, 0x2072, "Async-login - hdl=%x, loopid=%x portid=%02x%02x%02x " -- 2.39.5