verify: fix numberio accounting of experimental verify
authorShin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
Thu, 20 Oct 2022 06:38:52 +0000 (15:38 +0900)
committerVincent Fu <vincent.fu@samsung.com>
Mon, 24 Oct 2022 14:34:57 +0000 (10:34 -0400)
commit28921bc06ceb731efd6b363d3f54c2d76bd962e9
tree5ecc6d887a5f4ec876a1b175b61dc54a13dc2f32
parent191d6634e8a692bef15143715c88920987ecaa89
verify: fix numberio accounting of experimental verify

As for non-experimental verify, numberio is compared between the numbers
saved in metadata and written data header. As for experimental verify,
the metadata is not available. Instead of numberio in metadata, it
refers td->io_issues[] as the numberio value for the comparison.
However, td->io_issues[] is used not only for verify reads but also for
normal I/Os. It results in comparison with wrong numberio value and
verification failure.

Fix this issue by adding a new field td->verify_read_issues which counts
up number of verify reads. Substitute td->verify_read_issues to
io_u->numberio to refer it for the comparison in experimental verify
path. Also move td->io_issues[] substitution to io_u->numberio out of
populate_verify_io_u() to keep same behavior in non-experimental verify
path.

Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
Signed-off-by: Vincent Fu <vincent.fu@samsung.com>
backend.c
fio.h
verify.c