if (full || !td->o.iodepth_batch_complete) {
min_events = min(td->o.iodepth_batch_complete,
td->cur_depth);
- if (full && !min_events && td->o.iodepth_batch_complete != 0)
+ /*
+ * if the queue is full, we MUST reap at least 1 event
+ */
+ if (full && !min_events)
min_events = 1;
do {
if (full || !td->o.iodepth_batch_complete) {
min_evts = min(td->o.iodepth_batch_complete,
td->cur_depth);
- if (full && !min_evts && td->o.iodepth_batch_complete != 0)
+ /*
+ * if the queue is full, we MUST reap at least 1 event
+ */
+ if (full && !min_evts)
min_evts = 1;
if (__should_check_rate(td, 0) ||
struct io_completion_data {
int nr; /* input */
- int account; /* input */
int error; /* output */
unsigned long bytes_done[2]; /* output */
{
unsigned long uninitialized_var(lusec);
- if (!icd->account)
- return;
-
if (!td->o.disable_clat || !td->o.disable_bw)
lusec = utime_since(&io_u->issue_time, &icd->time);
fio_gettime(&icd->time, NULL);
icd->nr = nr;
- icd->account = 1;
icd->error = 0;
icd->bytes_done[0] = icd->bytes_done[1] = 0;
if (!(io_u->flags & IO_U_F_FREE_DEF))
put_io_u(td, io_u);
-
- icd->account = 0;
}
}