Merge branch 'gfio' of ssh://brick.kernel.dk/data/git/fio into gfio
[fio.git] / verify.c
index 5fe78c8cf556893fafccda5f485beca158e68ca0..01b56fde0b3c48529d70750be5c32616a393b82c 100644 (file)
--- a/verify.c
+++ b/verify.c
@@ -78,7 +78,7 @@ static unsigned int get_hdr_inc(struct thread_data *td, struct io_u *io_u)
        unsigned int hdr_inc;
 
        hdr_inc = io_u->buflen;
-       if (td->o.verify_interval)
+       if (td->o.verify_interval && td->o.verify_interval <= io_u->buflen)
                hdr_inc = td->o.verify_interval;
 
        return hdr_inc;
@@ -973,6 +973,7 @@ int get_next_verify(struct thread_data *td, struct io_u *io_u)
                io_u->offset = ipo->offset;
                io_u->buflen = ipo->len;
                io_u->file = ipo->file;
+               io_u->flags |= IO_U_F_VER_LIST;
 
                if (ipo->flags & IP_F_TRIMMED)
                        io_u->flags |= IO_U_F_TRIMMED;
@@ -1003,6 +1004,14 @@ int get_next_verify(struct thread_data *td, struct io_u *io_u)
        return 1;
 }
 
+void fio_verify_init(struct thread_data *td)
+{
+       if (td->o.verify == VERIFY_CRC32C_INTEL ||
+           td->o.verify == VERIFY_CRC32C) {
+               crc32c_intel_probe();
+       }
+}
+
 static void *verify_async_thread(void *data)
 {
        struct thread_data *td = data;
@@ -1048,8 +1057,7 @@ static void *verify_async_thread(void *data)
                        put_io_u(td, io_u);
                        if (!ret)
                                continue;
-                       if (td->o.continue_on_error & ERROR_TYPE_VERIFY &&
-                           td_non_fatal_error(ret)) {
+                       if (td_non_fatal_error(td, ERROR_TYPE_VERIFY_BIT, ret)) {
                                update_error_count(td, ret);
                                td_clear_error(td);
                                ret = 0;