]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
scsi: qla2xxx: fix rports not being mark as lost in sync fabric scan
authorMartin Wilck <mwilck@suse.com>
Fri, 22 Nov 2019 22:19:22 +0000 (22:19 +0000)
committerMartin K. Petersen <martin.petersen@oracle.com>
Wed, 27 Nov 2019 02:33:17 +0000 (21:33 -0500)
In qla2x00_find_all_fabric_devs(), fcport->flags & FCF_LOGIN_NEEDED is a
necessary condition for logging into new rports, but not for dropping lost
ones.

Fixes: 726b85487067 ("qla2xxx: Add framework for async fabric discovery")
Link: https://lore.kernel.org/r/20191122221912.20100-2-martin.wilck@suse.com
Tested-by: David Bond <dbond@suse.com>
Signed-off-by: Martin Wilck <mwilck@suse.com>
Acked-by: Himanshu Madhani <hmadhani@marvell.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/qla2xxx/qla_init.c

index 1dbee880021858c23fbba22655d4deb2c2958e54..6c28f38f8021a7f0ef8adde275866155e1e30738 100644 (file)
@@ -5898,8 +5898,7 @@ qla2x00_find_all_fabric_devs(scsi_qla_host_t *vha)
                if (test_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags))
                        break;
 
-               if ((fcport->flags & FCF_FABRIC_DEVICE) == 0 ||
-                   (fcport->flags & FCF_LOGIN_NEEDED) == 0)
+               if ((fcport->flags & FCF_FABRIC_DEVICE) == 0)
                        continue;
 
                if (fcport->scan_state == QLA_FCPORT_SCAN) {
@@ -5922,7 +5921,8 @@ qla2x00_find_all_fabric_devs(scsi_qla_host_t *vha)
                        }
                }
 
-               if (fcport->scan_state == QLA_FCPORT_FOUND)
+               if (fcport->scan_state == QLA_FCPORT_FOUND &&
+                   (fcport->flags & FCF_LOGIN_NEEDED) != 0)
                        qla24xx_fcport_handle_login(vha, fcport);
        }
        return (rval);