scsi: zfcp: fix missing REC trigger trace on enqueue without ERP thread
authorSteffen Maier <maier@linux.ibm.com>
Thu, 17 May 2018 17:14:49 +0000 (19:14 +0200)
committerMartin K. Petersen <martin.petersen@oracle.com>
Fri, 18 May 2018 15:22:11 +0000 (11:22 -0400)
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       : 0xc0                   ZFCP_ERP_ACTION_NONE

Signed-off-by: Steffen Maier <maier@linux.ibm.com>
Cc: <stable@vger.kernel.org> #2.6.38+
Reviewed-by: Benjamin Block <bblock@linux.ibm.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/s390/scsi/zfcp_erp.c

index 20fe593..69dfb32 100644 (file)
@@ -315,8 +315,11 @@ static int zfcp_erp_action_enqueue(int want, struct zfcp_adapter *adapter,
                goto out;
        }
 
-       if (!adapter->erp_thread)
-               return -EIO;
+       if (!adapter->erp_thread) {
+               need = ZFCP_ERP_ACTION_NONE; /* marker for trace */
+               retval = -EIO;
+               goto out;
+       }
 
        need = zfcp_erp_required_act(want, adapter, port, sdev);
        if (!need)