Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
return 1;
}
- io_done = td->io_bytes[DDIR_READ] + td->io_bytes[DDIR_WRITE];
+ io_done = td->io_bytes[DDIR_READ] + td->io_bytes[DDIR_WRITE] + td->io_skip_bytes;
if (io_done < td->o.size)
return 1;
td->last_was_sync = 0;
- td->nr_done_files = 0;
+ if (td->o.time_based)
+ td->nr_done_files = 0;
for_each_file(td, f, i)
td_io_close_file(td, f);
unsigned long io_issues[2];
unsigned long long io_blocks[2];
unsigned long long io_bytes[2];
+ unsigned long long io_skip_bytes;
unsigned long long this_io_bytes[2];
unsigned long long zone_bytes;
struct fio_sem *mutex;
io_u->ddir = get_rw_ddir(td);
+ /*
+ * See if it's time to switch to a new zone
+ */
+ if (td->zone_bytes >= td->o.zone_size) {
+ td->zone_bytes = 0;
+ io_u->file->last_pos += td->o.zone_skip;
+ td->io_skip_bytes += td->o.zone_skip;
+ }
+
/*
* No log, let the seq/rand engine retrieve the next buflen and
* position.
assert(io_u->file->flags & FIO_FILE_OPEN);
- if (td->zone_bytes >= td->o.zone_size) {
- td->zone_bytes = 0;
- f->last_pos += td->o.zone_skip;
- }
-
if (io_u->ddir != DDIR_SYNC) {
if (!io_u->buflen) {
put_io_u(td, io_u);