t/dedupe: fix init of all thread variables
[fio.git] / fio.h
diff --git a/fio.h b/fio.h
index 199610c7468cc5bdb0e19d7f8e4ffcdceaa4529e..f981739e8fc261285056da4bdc65a50bc8757fdb 100644 (file)
--- a/fio.h
+++ b/fio.h
@@ -89,6 +89,7 @@ enum {
        FIO_RAND_SEQ_RAND_WRITE_OFF,
        FIO_RAND_SEQ_RAND_TRIM_OFF,
        FIO_RAND_START_DELAY,
+       FIO_DEDUPE_OFF,
        FIO_RAND_NR_OFFS,
 };
 
@@ -102,6 +103,7 @@ struct thread_data {
        char verror[FIO_VERROR_SIZE];
        pthread_t thread;
        unsigned int thread_number;
+       unsigned int subjob_number;
        unsigned int groupid;
        struct thread_stat ts;
 
@@ -176,6 +178,8 @@ struct thread_data {
        };
 
        struct frand_state buf_state;
+       struct frand_state buf_state_prev;
+       struct frand_state dedupe_state;
 
        unsigned int verify_batch;
        unsigned int trim_batch;
@@ -402,7 +406,7 @@ extern const char fio_version_string[];
 
 extern struct thread_data *threads;
 
-static inline void fio_ro_check(struct thread_data *td, struct io_u *io_u)
+static inline void fio_ro_check(const struct thread_data *td, struct io_u *io_u)
 {
        assert(!(io_u->ddir == DDIR_WRITE && !td_write(td)));
 }
@@ -495,6 +499,7 @@ extern void td_restore_runstate(struct thread_data *, int);
 
 #define TERMINATE_ALL          (-1)
 extern void fio_terminate_threads(int);
+extern void fio_mark_td_terminate(struct thread_data *);
 
 /*
  * Memory helpers