On Tue, May 16, 2023 at 10:38:30AM +0900, Yeongjin Gil wrote:
From: Yeongjin Gil youngjin.gil@samsung.com
[ 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
Hello Greg. This patch is the wrong patch I mentioned :( Please check the v2 patch I sent yesterday. If you are still confused, would it be better to change mail subject and send v3?
I checked that the previous patch was queued in stable kernel. (dm verity: skip redundant verity_handle_err() on I/O errors)
It is queued up, see the full series for details.
I didn't know how to handle dependent commit in stable kernel.
The documentation shows how to do this.
There is no problem with the below current patch. Thank you and I'm sorry for confusion.
Thanks for checking!
greg k-h