There's an incorrect VDO_ASSERT macro usage in start_restoring volume_index() and start_restoring_volume_sub_index(), since assert's return value is not used anywhere.
Thus, use VDO_ASSERT_LOG_ONLY macro in such cases. Found by Linux Verification Center (linuxtesting.org) with SVACE. Signed-off-by: Ivan Abramov <[email protected]> --- drivers/md/dm-vdo/indexer/volume-index.c | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/drivers/md/dm-vdo/indexer/volume-index.c b/drivers/md/dm-vdo/indexer/volume-index.c index 12f954a0c532..99608f14400a 100644 --- a/drivers/md/dm-vdo/indexer/volume-index.c +++ b/drivers/md/dm-vdo/indexer/volume-index.c @@ -832,11 +832,9 @@ static int start_restoring_volume_sub_index(struct volume_sub_index *sub_index, decode_u32_le(buffer, &offset, &header.first_list); decode_u32_le(buffer, &offset, &header.list_count); - result = VDO_ASSERT(offset == sizeof(buffer), + VDO_ASSERT_LOG_ONLY(offset == sizeof(buffer), "%zu bytes decoded of %zu expected", offset, sizeof(buffer)); - if (result != VDO_SUCCESS) - result = UDS_CORRUPT_DATA; if (memcmp(header.magic, MAGIC_START_5, MAGIC_SIZE) != 0) { return vdo_log_warning_strerror(UDS_CORRUPT_DATA, @@ -924,11 +922,9 @@ static int start_restoring_volume_index(struct volume_index *volume_index, offset += MAGIC_SIZE; decode_u32_le(buffer, &offset, &header.sparse_sample_rate); - result = VDO_ASSERT(offset == sizeof(buffer), + VDO_ASSERT_LOG_ONLY(offset == sizeof(buffer), "%zu bytes decoded of %zu expected", offset, sizeof(buffer)); - if (result != VDO_SUCCESS) - result = UDS_CORRUPT_DATA; if (memcmp(header.magic, MAGIC_START_6, MAGIC_SIZE) != 0) return vdo_log_warning_strerror(UDS_CORRUPT_DATA, -- 2.39.5
