diff options
author | Yeongjin Gil <youngjin.gil@samsung.com> | 2023-03-20 15:59:32 +0900 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2023-05-17 11:13:23 +0200 |
commit | 0cdddbc0c7b4f54da3651a6cc2b68b6abb8b1880 (patch) | |
tree | 2d09e6622ff357679358f7d19a72b0e2e24cae3e /kernel | |
parent | bde2a8599e734d86537b207ecda5703763712d1f (diff) | |
download | linux-stable-0cdddbc0c7b4f54da3651a6cc2b68b6abb8b1880.tar.gz linux-stable-0cdddbc0c7b4f54da3651a6cc2b68b6abb8b1880.tar.bz2 linux-stable-0cdddbc0c7b4f54da3651a6cc2b68b6abb8b1880.zip |
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: 843f38d382b1 ("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>
Diffstat (limited to 'kernel')
0 files changed, 0 insertions, 0 deletions