scsi: zfcp: Report port fc_security as unknown early during remote cable pull
authorSteffen Maier <maier@linux.ibm.com>
Fri, 2 Jul 2021 16:09:22 +0000 (18:09 +0200)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 13 Jul 2021 01:51:50 +0000 (21:51 -0400)
On remote cable pull, a zfcp_port keeps its status and only gets
ZFCP_STATUS_PORT_LINK_TEST added. Only after an ADISC timeout, we would
actually start port recovery and remove ZFCP_STATUS_COMMON_UNBLOCKED which
zfcp_sysfs_port_fc_security_show() detected and reported as "unknown"
instead of the old and possibly stale zfcp_port->connection_info.

Add check for ZFCP_STATUS_PORT_LINK_TEST for timely "unknown" report.

Link: https://lore.kernel.org/r/20210702160922.2667874-1-maier@linux.ibm.com
Fixes: a17c78460093 ("scsi: zfcp: report FC Endpoint Security in sysfs")
Cc: <stable@vger.kernel.org> #5.7+
Reviewed-by: Benjamin Block <bblock@linux.ibm.com>
Signed-off-by: Steffen Maier <maier@linux.ibm.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/s390/scsi/zfcp_sysfs.c

index 544efd4..b8cd75a 100644 (file)
@@ -487,6 +487,7 @@ static ssize_t zfcp_sysfs_port_fc_security_show(struct device *dev,
        if (0 == (status & ZFCP_STATUS_COMMON_OPEN) ||
            0 == (status & ZFCP_STATUS_COMMON_UNBLOCKED) ||
            0 == (status & ZFCP_STATUS_PORT_PHYS_OPEN) ||
+           0 != (status & ZFCP_STATUS_PORT_LINK_TEST) ||
            0 != (status & ZFCP_STATUS_COMMON_ERP_FAILED) ||
            0 != (status & ZFCP_STATUS_COMMON_ACCESS_BOXED))
                i = sprintf(buf, "unknown\n");