return DDIR_WRITE;
}
-void io_u_quiesce(struct thread_data *td)
+int io_u_quiesce(struct thread_data *td)
{
+ int completed = 0;
+
/*
* We are going to sleep, ensure that we flush anything pending as
* not to skew our latency numbers.
int fio_unused ret;
ret = io_u_queued_complete(td, 1);
+ if (ret > 0)
+ completed += ret;
}
+
+ return completed;
}
static enum fio_ddir rate_ddir(struct thread_data *td, enum fio_ddir ddir)
for (ddir = DDIR_READ; ddir < DDIR_RWDIR_CNT; ddir++)
td->bytes_done[ddir] += icd.bytes_done[ddir];
- return 0;
+ return ret;
}
/*
extern int __must_check io_u_sync_complete(struct thread_data *, struct io_u *);
extern int __must_check io_u_queued_complete(struct thread_data *, int);
extern void io_u_queued(struct thread_data *, struct io_u *);
-extern void io_u_quiesce(struct thread_data *);
+extern int io_u_quiesce(struct thread_data *);
extern void io_u_log_error(struct thread_data *, struct io_u *);
extern void io_u_mark_depth(struct thread_data *, unsigned int);
extern void fill_io_buffer(struct thread_data *, void *, unsigned int, unsigned int);