]> git.itanic.dy.fi Git - linux-stable/commitdiff
s390/dasd: suppress generic error messages for PPRC secondary devices
authorStefan Haberland <sth@linux.ibm.com>
Tue, 20 Sep 2022 19:26:15 +0000 (21:26 +0200)
committerJens Axboe <axboe@kernel.dk>
Wed, 21 Sep 2022 14:32:51 +0000 (08:32 -0600)
Suppress generic command reject messages and dump of sense data for
Peer-To-Peer-Remote-Copy (PPRC) secondary errors.
If IO is issued on a PPRC secondary device, a specific
error message is printed instead.

Signed-off-by: Stefan Haberland <sth@linux.ibm.com>
Reviewed-by: Jan Hoeppner <hoeppner@linux.ibm.com>
Link: https://lore.kernel.org/r/20220920192616.808070-7-sth@linux.ibm.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
arch/s390/include/asm/scsw.h
drivers/s390/block/dasd_3990_erp.c

index 7ce584aff5bb5def0ea00f323c37d1fcdb55b30a..322bdcd4b616ada7601cc550f883ad4b71b119a0 100644 (file)
@@ -215,6 +215,11 @@ union scsw {
 #define SNS2_ENV_DATA_PRESENT  0x10
 #define SNS2_INPRECISE_END     0x04
 
+/*
+ * architectured values for PPRC errors
+ */
+#define SNS7_INVALID_ON_SEC    0x0e
+
 /**
  * scsw_is_tm - check for transport mode scsw
  * @scsw: pointer to scsw
index 299001ad9a32d8c0ff23e54cb33543ef67f8902b..81d283b3cd3bdc870030cb93ccd09043b05531e8 100644 (file)
@@ -1050,6 +1050,11 @@ dasd_3990_erp_com_rej(struct dasd_ccw_req * erp, char *sense)
                dev_err(&device->cdev->dev, "An I/O request was rejected"
                        " because writing is inhibited\n");
                erp = dasd_3990_erp_cleanup(erp, DASD_CQR_FAILED);
+       } else if (sense[7] & SNS7_INVALID_ON_SEC) {
+               dev_err(&device->cdev->dev, "An I/O request was rejected on a copy pair secondary device\n");
+               /* suppress dump of sense data for this error */
+               set_bit(DASD_CQR_SUPPRESS_CR, &erp->refers->flags);
+               erp = dasd_3990_erp_cleanup(erp, DASD_CQR_FAILED);
        } else {
                /* fatal error -  set status to FAILED
                   internal error 09 - Command Reject */