]> git.baikalelectronics.ru Git - kernel.git/commit
dm verity: fix error handling for check_at_most_once on FEC
authorYeongjin Gil <youngjin.gil@samsung.com>
Mon, 20 Mar 2023 06:59:32 +0000 (15:59 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 17 May 2023 09:35:57 +0000 (11:35 +0200)
commit2af93f8d105271ba32dd261aa72c18b0549639b9
tree2cc163deef59d6096c382252fed4e343cf87a146
parente2a81a4f4e60d86412a7a6e6097d158a5a9f32bd
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: a33ee47a80c6 ("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>
drivers/md/dm-verity-target.c