io_u: only rewind file position if it's non-zero
[fio.git] / verify.c
index b178450714d18bde73c2d52746393d1499364f7f..17af3bb92ab8e0747c532836aa5e9bd1e5ce2812 100644 (file)
--- a/verify.c
+++ b/verify.c
@@ -241,7 +241,6 @@ struct vcont {
 };
 
 #define DUMP_BUF_SZ    255
-static int dump_buf_warned;
 
 static void dump_buf(char *buf, unsigned int len, unsigned long long offset,
                     const char *type, struct fio_file *f)
@@ -260,10 +259,8 @@ static void dump_buf(char *buf, unsigned int len, unsigned long long offset,
 
        buf_left -= strlen(fname);
        if (buf_left <= 0) {
-               if (!dump_buf_warned) {
+               if (!fio_did_warn(FIO_WARN_VERIFY_BUF))
                        log_err("fio: verify failure dump buffer too small\n");
-                       dump_buf_warned = 1;
-               }
                free(ptr);
                return;
        }
@@ -751,9 +748,9 @@ int verify_io_u_async(struct thread_data *td, struct io_u **io_u_ptr)
        }
        flist_add_tail(&io_u->verify_list, &td->verify_list);
        *io_u_ptr = NULL;
-       pthread_mutex_unlock(&td->io_u_lock);
 
        pthread_cond_signal(&td->verify_cond);
+       pthread_mutex_unlock(&td->io_u_lock);
        return 0;
 }
 
@@ -1310,7 +1307,7 @@ int get_next_verify(struct thread_data *td, struct io_u *io_u)
                return 0;
 
        if (!RB_EMPTY_ROOT(&td->io_hist_tree)) {
-               struct rb_node *n = rb_first(&td->io_hist_tree);
+               struct fio_rb_node *n = rb_first(&td->io_hist_tree);
 
                ipo = rb_entry(n, struct io_piece, rb_node);