Message ID | 20190927154623.18206-1-xnox@ubuntu.com |
---|---|
State | New |
Headers | show |
Series | UBUNTU: SAUCE: s390/dasd: Fix error handling during online processing | expand |
Is this only for eoan?
Acked-by: Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
On Fri, 27 Sep 2019 at 17:26, Thadeu Lima de Souza Cascardo <cascardo@canonical.com> wrote: > > Is this only for eoan? > > Acked-by: Thadeu Lima de Souza Cascardo <cascardo@canonical.com> yes.
On Fri, Sep 27, 2019 at 04:46:23PM +0100, Dimitri John Ledkov wrote: > From: Jan Höppner <hoeppner@linux.ibm.com> > > BugLink: https://bugs.launchpad.net/bugs/1845323 > > It is possible that the CCW commands for reading volume and extent pool > information are not supported, either by the storage server (for > dedicated DASDs) or by z/VM (for virtual devices, such as MDISKs). > > As a command reject will occur in such a case, the current error > handling leads to a failing online processing and thus the DASD can't be > used at all. > > Since the data being read is not essential for an fully operational > DASD, the error handling can be removed. Information about the failing > command is sent to the s390dbf debug feature. > > Fixes: c729696bcf8b ("s390/dasd: Recognise data for ESE volumes") > Cc: <stable@vger.kernel.org> # 5.3 > Reported-by: Frank Heimes <frank.heimes@canonical.com> > Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com> > Signed-off-by: Dimitri John Ledkov <xnox@ubuntu.com> Limited scope, fixes a bug critical for eoan release. Acked-by: Seth Forshee <seth.forshee@canonical.com>
On Fri, Sep 27, 2019 at 04:46:23PM +0100, Dimitri John Ledkov wrote: > From: Jan Höppner <hoeppner@linux.ibm.com> > > BugLink: https://bugs.launchpad.net/bugs/1845323 > > It is possible that the CCW commands for reading volume and extent pool > information are not supported, either by the storage server (for > dedicated DASDs) or by z/VM (for virtual devices, such as MDISKs). > > As a command reject will occur in such a case, the current error > handling leads to a failing online processing and thus the DASD can't be > used at all. > > Since the data being read is not essential for an fully operational > DASD, the error handling can be removed. Information about the failing > command is sent to the s390dbf debug feature. > > Fixes: c729696bcf8b ("s390/dasd: Recognise data for ESE volumes") > Cc: <stable@vger.kernel.org> # 5.3 > Reported-by: Frank Heimes <frank.heimes@canonical.com> > Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com> > Signed-off-by: Dimitri John Ledkov <xnox@ubuntu.com> Applied to eoan/master-next, thanks!
diff --git a/drivers/s390/block/dasd_eckd.c b/drivers/s390/block/dasd_eckd.c index fc53e1e221f0..b213c40d1a51 100644 --- a/drivers/s390/block/dasd_eckd.c +++ b/drivers/s390/block/dasd_eckd.c @@ -1553,8 +1553,8 @@ static int dasd_eckd_read_vol_info(struct dasd_device *device) if (rc == 0) { memcpy(&private->vsq, vsq, sizeof(*vsq)); } else { - dev_warn(&device->cdev->dev, - "Reading the volume storage information failed with rc=%d\n", rc); + DBF_EVENT_DEVID(DBF_WARNING, device->cdev, + "Reading the volume storage information failed with rc=%d", rc); } if (useglobal) @@ -1737,8 +1737,8 @@ static int dasd_eckd_read_ext_pool_info(struct dasd_device *device) if (rc == 0) { dasd_eckd_cpy_ext_pool_data(device, lcq); } else { - dev_warn(&device->cdev->dev, - "Reading the logical configuration failed with rc=%d\n", rc); + DBF_EVENT_DEVID(DBF_WARNING, device->cdev, + "Reading the logical configuration failed with rc=%d", rc); } dasd_sfree_request(cqr, cqr->memdev); @@ -2020,14 +2020,10 @@ dasd_eckd_check_characteristics(struct dasd_device *device) dasd_eckd_read_features(device); /* Read Volume Information */ - rc = dasd_eckd_read_vol_info(device); - if (rc) - goto out_err3; + dasd_eckd_read_vol_info(device); /* Read Extent Pool Information */ - rc = dasd_eckd_read_ext_pool_info(device); - if (rc) - goto out_err3; + dasd_eckd_read_ext_pool_info(device); /* Read Device Characteristics */ rc = dasd_generic_read_dev_chars(device, DASD_ECKD_MAGIC, @@ -5663,14 +5659,10 @@ static int dasd_eckd_restore_device(struct dasd_device *device) dasd_eckd_read_features(device); /* Read Volume Information */ - rc = dasd_eckd_read_vol_info(device); - if (rc) - goto out_err2; + dasd_eckd_read_vol_info(device); /* Read Extent Pool Information */ - rc = dasd_eckd_read_ext_pool_info(device); - if (rc) - goto out_err2; + dasd_eckd_read_ext_pool_info(device); /* Read Device Characteristics */ rc = dasd_generic_read_dev_chars(device, DASD_ECKD_MAGIC,