scsi: qla2xxx: Fix unintended Logout
authorQuinn Tran <quinn.tran@cavium.com>
Thu, 2 Aug 2018 20:16:51 +0000 (13:16 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Thu, 2 Aug 2018 20:56:18 +0000 (16:56 -0400)
During normal IO, FW can return IO with 'port unavailble' status.  Driver
would send a LOGO to remote port for session resync.  On an off chance, a
PLOGI could arrive before sending the LOGO.  This patch will skip sendiing
LOGO if a PLOGI just came in.

Signed-off-by: Quinn Tran <quinn.tran@cavium.com>
Signed-off-by: Himanshu Madhani <himanshu.madhani@cavium.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/qla2xxx/qla_target.c

index 4f9c315..f903600 100644 (file)
@@ -986,8 +986,9 @@ void qlt_free_session_done(struct work_struct *work)
 
                        logo.id = sess->d_id;
                        logo.cmd_count = 0;
+                       if (!own)
+                               qlt_send_first_logo(vha, &logo);
                        sess->send_els_logo = 0;
-                       qlt_send_first_logo(vha, &logo);
                }
 
                if (sess->logout_on_delete && sess->loop_id != FC_NO_LOOP_ID) {