[PATCH v7 17/19] s390/dasd: Report ESE capability and format mode at device online
Stefan Haberland <[email protected]> Sat, 1 Aug 2026 20:00:31 +0200
| Newsgroups | org.kernel.vger.linux-s390 |
|---|---|
| Message-ID | <[email protected]> |
Extend the device information line logged when a volume comes online with the ESE hardware capability and the on-disk format mode. The format mode (full or on demand) is derived from the on-disk format label alone, so a volume that is not backed by ESE hardware but was still formatted on demand is reported correctly. Reviewed-by: Jan Höppner <[email protected]> Signed-off-by: Stefan Haberland <[email protected]> --- drivers/s390/block/dasd_eckd.c | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/drivers/s390/block/dasd_eckd.c b/drivers/s390/block/dasd_eckd.c index ba67a3311193..b8b862205db0 100644 --- a/drivers/s390/block/dasd_eckd.c +++ b/drivers/s390/block/dasd_eckd.c @@ -2522,6 +2522,7 @@ static int dasd_eckd_end_analysis(struct dasd_block *block) struct dasd_device *device = block->base; struct dasd_eckd_private *private = device->private; struct eckd_count *count_area; + const char *ese_str, *fmt_str; unsigned int sb, blk_per_trk; int status, i; struct dasd_ccw_req *init_cqr; @@ -2608,15 +2609,29 @@ static int dasd_eckd_end_analysis(struct dasd_block *block) private->rdc_data.trk_per_cyl * blk_per_trk); + /* + * Report the ESE hardware capability and the format mode. The mode + * comes from dasd_eckd_on_demand_format() (the on-disk label, or the + * ESE state when no label is present), matching the on_demand_formatting + * sysfs attribute. + */ + ese_str = dasd_eckd_ese_capable(device) ? ", ESE" : ""; + fmt_str = ""; + if (dasd_eckd_on_demand_format(device)) + fmt_str = ", on-demand format"; + else if (dasd_eckd_ese_capable(device)) + fmt_str = ", full format"; + dev_info(&device->cdev->dev, - "DASD with %u KB/block, %lu KB total size, %u KB/track, " - "%s\n", (block->bp_block >> 10), + "DASD with %u KB/block, %lu KB total size, %u KB/track, %s%s%s\n", + (block->bp_block >> 10), (((unsigned long) private->real_cyl * private->rdc_data.trk_per_cyl * blk_per_trk * (block->bp_block >> 9)) >> 1), ((blk_per_trk * block->bp_block) >> 10), private->uses_cdl ? - "compatible disk layout" : "linux disk layout"); + "compatible disk layout" : "linux disk layout", + ese_str, fmt_str); return 0; } -- 2.53.0