The commit
c5c8b92be5a2 ("zbd: fix zone reset condition for verify")
improved zbd_file_reset() to not reset zones when data to verify is
left. To check the left verify data, it tried to do the same as
check_get_verify() including the check for the modulo operation
"td->io_hist_len % td->o.verify_backlog". This check is required in
check_get_verify() to know when to do the verify backlog operation.
However, this check is not required in zbd_file_reset() since zone reset
is not related to the verify backlog timing. The unnecessary check for
"td->io_hist_len % td->o.verify_backlog" allows to reset zones even when
td->io_hist_len is non-zero and the data to verify is left. It erases
the data to verify and causes verify errors. Fix this by removing the
unnecessary check.
Fixes:
c5c8b92be5a2 ("zbd: fix zone reset condition for verify")
Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
Link: https://lore.kernel.org/r/20240430103022.4136039-2-shinichiro.kawasaki@wdc.com
Signed-off-by: Vincent Fu <vincent.fu@samsung.com>
if (td->o.verify != VERIFY_NONE) {
verify_data_left = td->runstate == TD_VERIFYING ||
td->io_hist_len || td->verify_batch;
if (td->o.verify != VERIFY_NONE) {
verify_data_left = td->runstate == TD_VERIFYING ||
td->io_hist_len || td->verify_batch;
- if (td->io_hist_len && td->o.verify_backlog)
- verify_data_left =
- td->io_hist_len % td->o.verify_backlog;
if (!verify_data_left)
zbd_reset_zones(td, f, zb, ze);
}
if (!verify_data_left)
zbd_reset_zones(td, f, zb, ze);
}