Yeongjin Gil
439d3a7056
dm verity: fix error handling for check_at_most_once on FEC
...
[ Upstream commit e8c5d45f82ce0c238a4817739892fe8897a3dcc3 ]
In verity_end_io(), if bi_status is not BLK_STS_OK, it can be return
directly. But if FEC configured, it is desired to correct the data page
through verity_verify_io. And the return value will be converted to
blk_status and passed to verity_finish_io().
BTW, when a bit is set in v->validated_blocks, verity_verify_io() skips
verification regardless of I/O error for the corresponding bio. In this
case, the I/O error could not be returned properly, and as a result,
there is a problem that abnormal data could be read for the
corresponding block.
To fix this problem, when an I/O error occurs, do not skip verification
even if the bit related is set in v->validated_blocks.
Fixes: 843f38d382 ("dm verity: add 'check_at_most_once' option to only validate hashes once")
Cc: stable@vger.kernel.org
Reviewed-by: Sungjong Seo <sj1557.seo@samsung.com>
Signed-off-by: Yeongjin Gil <youngjin.gil@samsung.com>
Signed-off-by: Mike Snitzer <snitzer@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-05-17 11:35:57 +02:00
..
bcache
bcache: fix set_at_max_writeback_rate() for multiple attached devices
2022-10-26 13:22:57 +02:00
persistent-data
dm space map common: add bounds check to sm_ll_lookup_bitmap()
2022-01-27 09:19:46 +01:00
dm-bio-prison-v1.c
dm-bio-prison-v1.h
dm-bio-prison-v2.c
dm-bio-prison-v2.h
dm-bio-record.h
dm-bufio.c
dm bufio: subtract the number of initial sectors in dm_bufio_get_device_size
2021-03-09 11:09:37 +01:00
dm-builtin.c
dm-cache-background-tracker.c
dm-cache-background-tracker.h
dm-cache-block-types.h
dm-cache-metadata.c
dm cache: Fix ABBA deadlock between shrink_slab and dm_cache_metadata_abort
2023-01-18 11:41:46 +01:00
dm-cache-metadata.h
dm-cache-policy-internal.h
dm-cache-policy-smq.c
dm-cache-policy.c
dm-cache-policy.h
dm-cache-target.c
dm cache: add cond_resched() to various workqueue loops
2023-03-11 16:43:58 +01:00
dm-clone-metadata.c
dm-clone-metadata.h
dm-clone-target.c
dm clone: call kmem_cache_destroy() in dm_clone_init() error path
2023-05-17 11:35:56 +02:00
dm-core.h
dm: fix deadlock when swapping to encrypted device
2021-03-04 10:26:51 +01:00
dm-crypt.c
dm crypt: add cond_resched() to dmcrypt_write()
2023-04-05 11:16:41 +02:00
dm-delay.c
dm-dust.c
dm-era-target.c
dm era: commit metadata in postsuspend after worker stops
2022-06-29 08:58:45 +02:00
dm-exception-store.c
dm-exception-store.h
dm-flakey.c
dm flakey: fix a crash with invalid table line
2023-05-17 11:35:56 +02:00
dm-init.c
dm-integrity.c
dm integrity: call kmem_cache_destroy() in dm_integrity_init() error path
2023-05-17 11:35:56 +02:00
dm-io.c
dm-ioctl.c
dm ioctl: fix nested locking in table_clear() to remove deadlock concern
2023-05-17 11:35:56 +02:00
dm-kcopyd.c
dm-linear.c
dm-log-userspace-base.c
dm-log-userspace-transfer.c
dm-log-userspace-transfer.h
dm-log-writes.c
dm-log.c
dm mirror log: clear log bits up to BITS_PER_LONG boundary
2022-06-29 08:58:45 +02:00
dm-mpath.c
dm mpath: fix racey management of PG initialization
2020-09-09 19:12:35 +02:00
dm-mpath.h
dm-path-selector.c
dm-path-selector.h
dm-queue-length.c
dm-raid.c
dm raid: fix address sanitizer warning in raid_status
2022-08-25 11:18:14 +02:00
dm-raid1.c
dm-region-hash.c
dm-round-robin.c
dm-rq.c
dm rq: fix double free of blk_mq_tag_set in dev remove after table load fails
2021-05-11 14:04:18 +02:00
dm-rq.h
dm-service-time.c
dm-snap-persistent.c
dm-snap-transient.c
dm-snap.c
dm snapshot: properly fix a crash when an origin has no snapshots
2021-06-03 08:59:02 +02:00
dm-stats.c
dm stats: check for and propagate alloc_percpu failure
2023-04-05 11:16:41 +02:00
dm-stats.h
dm stats: check for and propagate alloc_percpu failure
2023-04-05 11:16:41 +02:00
dm-stripe.c
dm-switch.c
dm-sysfs.c
dm-table.c
dm: remove special-casing of bio-based immutable singleton target on NVMe
2022-06-25 12:44:35 +02:00
dm-target.c
dm-thin-metadata.c
dm thin: Use last transaction's pmd->root when commit failed
2023-01-18 11:41:47 +01:00
dm-thin-metadata.h
dm-thin.c
dm thin: fix deadlock when swapping to thin device
2023-04-05 11:16:40 +02:00
dm-uevent.c
dm-uevent.h
dm-unstripe.c
dm-verity-fec.c
dm verity fec: fix misaligned RS roots IO
2021-04-21 12:56:15 +02:00
dm-verity-fec.h
dm verity fec: fix misaligned RS roots IO
2021-04-21 12:56:15 +02:00
dm-verity-target.c
dm verity: fix error handling for check_at_most_once on FEC
2023-05-17 11:35:57 +02:00
dm-verity-verify-sig.c
dm verity: fix require_signatures module_param permissions
2021-06-16 11:59:37 +02:00
dm-verity-verify-sig.h
dm-verity.h
dm-writecache.c
dm writecache: set a default MAX_WRITEBACK_JOBS
2022-08-25 11:18:14 +02:00
dm-zero.c
dm-zoned-metadata.c
dm-zoned-reclaim.c
dm-zoned-target.c
dm-zoned.h
dm.c
dm stats: check for and propagate alloc_percpu failure
2023-04-05 11:16:41 +02:00
dm.h
dm table: fix DAX iterate_devices based device capability checks
2021-03-11 14:06:49 +01:00
Kconfig
dm integrity: select CRYPTO_SKCIPHER
2021-01-27 11:47:42 +01:00
Makefile
md-bitmap.c
md/bitmap: Fix bitmap chunk size overflow issues
2023-01-18 11:41:49 +01:00
md-bitmap.h
md-cluster.c
md/cluster: fix deadlock when node is doing resync job
2020-12-30 11:51:45 +01:00
md-cluster.h
md-faulty.c
md-linear.c
md-linear.h
md-multipath.c
md-multipath.h
md.c
md: avoid signed overflow in slot_store()
2023-04-05 11:16:42 +02:00
md.h
raid0.c
md: Replace snprintf with scnprintf
2022-10-26 13:23:00 +02:00
raid0.h
raid1-10.c
raid1.c
md/raid1: stop mdx_raid1 thread when raid1 array run failed
2023-01-18 11:41:37 +01:00
raid1.h
raid5-cache.c
raid5-log.h
raid5-ppl.c
raid5.c
md: update the optimal I/O size on reshape
2023-05-17 11:35:44 +02:00
raid5.h
raid10.c
md/raid10: fix null-ptr-deref in raid10_sync_request
2023-05-17 11:35:55 +02:00
raid10.h