Don't populate random data for verify reads
[fio.git] / io_u.c
diff --git a/io_u.c b/io_u.c
index d92d940522191451a830e2b1c44428d385e4ccbd..8c2f33b5e85e1e16bb3d6aea7564cbd5181a5e62 100644 (file)
--- a/io_u.c
+++ b/io_u.c
@@ -113,7 +113,8 @@ static int get_next_free_block(struct thread_data *td, struct fio_file *f,
 
        i = f->last_free_lookup;
        *b = (i * BLOCKS_PER_MAP);
-       while ((*b) * min_bs < f->real_file_size) {
+       while ((*b) * min_bs < f->real_file_size &&
+               (*b) * min_bs < f->io_size) {
                if (f->file_map[i] != (unsigned int) -1) {
                        *b += ffz(f->file_map[i]);
                        if (*b > last_block(td, f, ddir))
@@ -837,7 +838,7 @@ struct io_u *get_io_u(struct thread_data *td)
 
                f->last_pos = io_u->offset + io_u->buflen;
 
-               if (td->o.verify != VERIFY_NONE)
+               if (td->o.verify != VERIFY_NONE && io_u->ddir == DDIR_WRITE)
                        populate_verify_io_u(td, io_u);
                else if (td->o.refill_buffers && io_u->ddir == DDIR_WRITE)
                        io_u_fill_buffer(td, io_u, io_u->xfer_buflen);