iolog: remove random layout verification optimisation
Running the following fio jobs unexpectedly reports a verification
failure:
rm /tmp/tmp.fio; ./fio --iodepth=1 \
--verify=pattern --verify_fatal=1 --size=100M --bsrange=512-128k \
--rw=randwrite --verify_backlog=128 --filename=/tmp/tmp.fio \
--verify_pattern="%o" --name=spuriousmismatch1
rm /tmp/tmp.fio; ./fio --iodepth=1 \
--verify=crc32c --verify_fatal=1 --size=100M --bs=4k \
--rw=randwrite --verify_backlog=20 --filename=/tmp/tmp.fio \
--percentage_random=50 --randseed=86 --name=spuriousmismatch2
In the case of the first job, using a bsrange where the start and end
are different can cause random write I/O to overlap an already written
region making the original data unverifiable.
For the second job, when percentage_random is between 1 and 99 the same
offset can be generated multiple times but only the last write to that
offset should be verified.
Rather than special casing the growing number of random jobs that might
generate overlaps while still having a randommap, and given preallocation
during layout is the default where possible, just remove the overwrite=0
optimisation thus forcing all random jobs to be checked for overlaps. It
is still possible to force the old behaviour by setting verifysort=0.
Fixes https://github.com/axboe/fio/issues/335 and
https://github.com/axboe/fio/issues/344 .
Tested-by: Jeff Furlong <jeff.furlong@wdc.com>
Signed-off-by: Sitsofe Wheeler <sitsofe@yahoo.com>