enum {
VERIFY_NONE = 0, /* no verification */
VERIFY_MD5, /* md5 sum data blocks */
enum {
VERIFY_NONE = 0, /* no verification */
VERIFY_MD5, /* md5 sum data blocks */
FIO_DISKLESSIO = 1 << 2, /* no disk involved */
FIO_NOEXTEND = 1 << 3, /* engine can't extend file */
FIO_NODISKUTIL = 1 << 4, /* diskutil can't handle filename */
FIO_DISKLESSIO = 1 << 2, /* no disk involved */
FIO_NOEXTEND = 1 << 3, /* engine can't extend file */
FIO_NODISKUTIL = 1 << 4, /* diskutil can't handle filename */
unsigned int thinktime_blocks;
unsigned int fsync_blocks;
unsigned int start_delay;
unsigned int thinktime_blocks;
unsigned int fsync_blocks;
unsigned int start_delay;
unsigned long io_issues[2];
unsigned long long io_blocks[2];
unsigned long long io_bytes[2];
unsigned long io_issues[2];
unsigned long long io_blocks[2];
unsigned long long io_bytes[2];
struct timeval start; /* start of this loop */
struct timeval epoch; /* time job was started */
struct timeval rw_end[2];
struct timeval start; /* start of this loop */
struct timeval epoch; /* time job was started */
struct timeval rw_end[2];
-extern void write_iolog_put(struct thread_data *, struct io_u *);
+extern void log_io_u(struct thread_data *, struct io_u *);
+extern void log_file(struct thread_data *, struct fio_file *, enum file_log_act);
extern int __must_check init_iolog(struct thread_data *td);
extern void log_io_piece(struct thread_data *, struct io_u *);
extern void prune_io_piece_log(struct thread_data *);
extern int __must_check init_iolog(struct thread_data *td);
extern void log_io_piece(struct thread_data *, struct io_u *);
extern void prune_io_piece_log(struct thread_data *);
extern int __must_check file_invalidate_cache(struct thread_data *, struct fio_file *);
extern int __must_check generic_open_file(struct thread_data *, struct fio_file *);
extern void generic_close_file(struct thread_data *, struct fio_file *);
extern int __must_check file_invalidate_cache(struct thread_data *, struct fio_file *);
extern int __must_check generic_open_file(struct thread_data *, struct fio_file *);
extern void generic_close_file(struct thread_data *, struct fio_file *);
extern void get_file(struct fio_file *);
extern void put_file(struct thread_data *, struct fio_file *);
extern int add_dir_files(struct thread_data *, const char *);
extern int init_random_map(struct thread_data *);
extern void dup_files(struct thread_data *, struct thread_data *);
extern void get_file(struct fio_file *);
extern void put_file(struct thread_data *, struct fio_file *);
extern int add_dir_files(struct thread_data *, const char *);
extern int init_random_map(struct thread_data *);
extern void dup_files(struct thread_data *, struct thread_data *);
extern int is_blktrace(const char *);
extern int load_blktrace(struct thread_data *, const char *);
extern int is_blktrace(const char *);
extern int load_blktrace(struct thread_data *, const char *);