unsigned char *p = (unsigned char *) io_u->buf;
struct md5_ctx md5_ctx;
- /*
- * assume this is a file hole, if we have been doing random writes
- * and magic is zero
- */
- if (hdr->fio_magic != FIO_HDR_MAGIC) {
- if (!td->sequential && !hdr->fio_magic)
- return 0;
-
+ if (hdr->fio_magic != FIO_HDR_MAGIC)
return 1;
- }
memset(&md5_ctx, 0, sizeof(md5_ctx));
p += sizeof(*hdr);
break;
if (back) {
+ printf("will seek %d %d\n", ret, back);
ret -= back;
if (lseek(td->fd, -back, SEEK_CUR) < 0) {
td->error = errno;
if (!td->use_aio) {
do_sync_io(td);
- if (!td->verify || td_read(td))
+ if (!td->verify)
continue;
clear_io_state(td);
} else {
do_async_io(td);
- if (!td->verify || td_read(td))
+ if (!td->verify)
continue;
clear_io_state(td);
td->min_bs = td->bs;
if (td->max_bs == -1)
td->max_bs = td->bs;
+ if (td_read(td) || !td->sequential)
+ td->verify = 0;
if (setup_rate(td))
return -1;