Skip to content

Commit dd45483

Browse files
hoeppnerjaxboe
authored andcommitted
s390/dasd: Fix error handling during online processing
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: c729696 ("s390/dasd: Recognise data for ESE volumes") Cc: <[email protected]> # 5.3 Reported-by: Frank Heimes <[email protected]> Signed-off-by: Jan Höppner <[email protected]> Signed-off-by: Stefan Haberland <[email protected]> Signed-off-by: Jens Axboe <[email protected]>
1 parent bdf2007 commit dd45483

File tree

1 file changed

+8
-16
lines changed

1 file changed

+8
-16
lines changed

drivers/s390/block/dasd_eckd.c

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1553,8 +1553,8 @@ static int dasd_eckd_read_vol_info(struct dasd_device *device)
15531553
if (rc == 0) {
15541554
memcpy(&private->vsq, vsq, sizeof(*vsq));
15551555
} else {
1556-
dev_warn(&device->cdev->dev,
1557-
"Reading the volume storage information failed with rc=%d\n", rc);
1556+
DBF_EVENT_DEVID(DBF_WARNING, device->cdev,
1557+
"Reading the volume storage information failed with rc=%d", rc);
15581558
}
15591559

15601560
if (useglobal)
@@ -1737,8 +1737,8 @@ static int dasd_eckd_read_ext_pool_info(struct dasd_device *device)
17371737
if (rc == 0) {
17381738
dasd_eckd_cpy_ext_pool_data(device, lcq);
17391739
} else {
1740-
dev_warn(&device->cdev->dev,
1741-
"Reading the logical configuration failed with rc=%d\n", rc);
1740+
DBF_EVENT_DEVID(DBF_WARNING, device->cdev,
1741+
"Reading the logical configuration failed with rc=%d", rc);
17421742
}
17431743

17441744
dasd_sfree_request(cqr, cqr->memdev);
@@ -2020,14 +2020,10 @@ dasd_eckd_check_characteristics(struct dasd_device *device)
20202020
dasd_eckd_read_features(device);
20212021

20222022
/* Read Volume Information */
2023-
rc = dasd_eckd_read_vol_info(device);
2024-
if (rc)
2025-
goto out_err3;
2023+
dasd_eckd_read_vol_info(device);
20262024

20272025
/* Read Extent Pool Information */
2028-
rc = dasd_eckd_read_ext_pool_info(device);
2029-
if (rc)
2030-
goto out_err3;
2026+
dasd_eckd_read_ext_pool_info(device);
20312027

20322028
/* Read Device Characteristics */
20332029
rc = dasd_generic_read_dev_chars(device, DASD_ECKD_MAGIC,
@@ -5663,14 +5659,10 @@ static int dasd_eckd_restore_device(struct dasd_device *device)
56635659
dasd_eckd_read_features(device);
56645660

56655661
/* Read Volume Information */
5666-
rc = dasd_eckd_read_vol_info(device);
5667-
if (rc)
5668-
goto out_err2;
5662+
dasd_eckd_read_vol_info(device);
56695663

56705664
/* Read Extent Pool Information */
5671-
rc = dasd_eckd_read_ext_pool_info(device);
5672-
if (rc)
5673-
goto out_err2;
5665+
dasd_eckd_read_ext_pool_info(device);
56745666

56755667
/* Read Device Characteristics */
56765668
rc = dasd_generic_read_dev_chars(device, DASD_ECKD_MAGIC,

0 commit comments

Comments
 (0)