linux/drivers/s390/block
Stefan Haberland 7db4042336 s390/dasd: fix error recovery leading to data corruption on ESE devices
Extent Space Efficient (ESE) or thin provisioned volumes need to be
formatted on demand during usual IO processing.

The dasd_ese_needs_format function checks for error codes that signal
the non existence of a proper track format.

The check for incorrect length is to imprecise since other error cases
leading to transport of insufficient data also have this flag set.
This might lead to data corruption in certain error cases for example
during a storage server warmstart.

Fix by removing the check for incorrect length and replacing by
explicitly checking for invalid track format in transport mode.

Also remove the check for file protected since this is not a valid
ESE handling case.

Cc: stable@vger.kernel.org # 5.3+
Fixes: 5e2b17e712 ("s390/dasd: Add dynamic formatting support for ESE volumes")
Reviewed-by: Jan Hoeppner <hoeppner@linux.ibm.com>
Signed-off-by: Stefan Haberland <sth@linux.ibm.com>
Link: https://lore.kernel.org/r/20240812125733.126431-3-sth@linux.ibm.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2024-08-12 10:31:08 -06:00
..
dasd_3990_erp.c s390/dasd: fix error recovery leading to data corruption on ESE devices 2024-08-12 10:31:08 -06:00
dasd_alias.c s390/dasd: use new address translation helpers 2024-03-13 09:23:46 +01:00
dasd_devmap.c s390/dasd: fix error checks in dasd_copy_pair_store() 2024-07-15 10:57:39 -06:00
dasd_diag.c s390/dasd: add missing MODULE_DESCRIPTION() macros 2024-07-15 10:57:39 -06:00
dasd_diag.h
dasd_eckd.c s390/dasd: fix error recovery leading to data corruption on ESE devices 2024-08-12 10:31:08 -06:00
dasd_eckd.h s390/dasd: add device ping attribute 2022-09-21 08:32:51 -06:00
dasd_eer.c s390/dasd: use new address translation helpers 2024-03-13 09:23:46 +01:00
dasd_erp.c s390/dasd: Remove PRINTK_HEADER and KMSG_COMPONENT definitions 2024-02-08 10:12:01 -07:00
dasd_fba.c for-6.11/block-20240722 2024-07-22 11:32:05 -07:00
dasd_fba.h
dasd_genhd.c s390/dasd: Remove DMA alignment 2024-08-12 10:31:08 -06:00
dasd_int.h s390/dasd: fix error recovery leading to data corruption on ESE devices 2024-08-12 10:31:08 -06:00
dasd_ioctl.c dasd_format(): killing the last remaining user of ->bd_inode 2024-05-03 02:36:56 -04:00
dasd_proc.c s390/dasd: Remove PRINTK_HEADER and KMSG_COMPONENT definitions 2024-02-08 10:12:01 -07:00
dasd.c s390/dasd: fix error recovery leading to data corruption on ESE devices 2024-08-12 10:31:08 -06:00
dcssblk.c s390 updates for 6.11 merge window 2024-07-18 15:41:45 -07:00
Kconfig dax: remove CONFIG_DAX_DRIVER 2021-12-04 08:58:51 -08:00
Makefile s390: remove xpram device driver 2021-09-07 13:38:42 +02:00
scm_blk.c block: move the add_random flag to queue_limits 2024-06-19 07:58:28 -06:00
scm_blk.h block: remove genhd.h 2022-02-02 07:49:59 -07:00
scm_drv.c s390/scm: Make struct scm_driver::remove return void 2021-07-21 11:53:42 +02:00