• Steffen Maier's avatar
    scsi: zfcp: fix missing REC trigger trace for all objects in ERP_FAILED · 8c3d20aa
    Steffen Maier authored
    That other commit introduced an inconsistency because it would trace on
    ERP_FAILED for all callers of port forced reopen triggers (not just
    terminate_rport_io), but it would not trace on ERP_FAILED for all callers of
    other ERP triggers such as adapter, port regular, LUN.
    
    Therefore, generalize that other commit. zfcp_erp_action_enqueue() already
    had two early outs which re-used the one zfcp_dbf_rec_trig() call.  All ERP
    trigger functions finally run through zfcp_erp_action_enqueue().  So move
    the special handling for ZFCP_STATUS_COMMON_ERP_FAILED into
    zfcp_erp_action_enqueue() and add another early out with new trace marker
    for pseudo ERP need in this case. This removes all early returns from all
    ERP trigger functions so we always end up at zfcp_dbf_rec_trig().
    
    Example trace record formatted with zfcpdbf from s390-tools:
    
    Timestamp      : ...
    Area           : REC
    Subarea        : 00
    Level          : 1
    Exception      : -
    CPU ID         : ..
    Caller         : 0x...
    Record ID      : 1                      ZFCP_DBF_REC_TRIG
    Tag            : .......
    LUN            : 0x...
    WWPN           : 0x...
    D_ID           : 0x...
    Adapter status : 0x...
    Port status    : 0x...
    LUN status     : 0x...
    Ready count    : 0x...
    Running count  : 0x...
    ERP want       : 0x0.                   ZFCP_ERP_ACTION_REOPEN_...
    ERP need       : 0xe0                   ZFCP_ERP_ACTION_FAILED
    Signed-off-by: default avatarSteffen Maier <maier@linux.ibm.com>
    Cc: <stable@vger.kernel.org> #2.6.38+
    Reviewed-by: default avatarBenjamin Block <bblock@linux.ibm.com>
    Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
    8c3d20aa
zfcp_erp.c 47.5 KB