summaryrefslogtreecommitdiff
path: root/io_u.c
diff options
context:
space:
mode:
Diffstat (limited to 'io_u.c')
-rw-r--r--io_u.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/io_u.c b/io_u.c
index f2406e8c..0d55c09a 100644
--- a/io_u.c
+++ b/io_u.c
@@ -681,10 +681,15 @@ static struct fio_file *get_next_file(struct thread_data *td)
}
f = td->file_service_file;
- if (f && (f->flags & FIO_FILE_OPEN) && td->file_service_left--)
- goto out;
+ if (f && (f->flags & FIO_FILE_OPEN)) {
+ if (td->o.file_service_type == FIO_FSERVICE_SEQ)
+ goto out;
+ if (td->file_service_left--)
+ goto out;
+ }
- if (td->o.file_service_type == FIO_FSERVICE_RR)
+ if (td->o.file_service_type == FIO_FSERVICE_RR ||
+ td->o.file_service_type == FIO_FSERVICE_SEQ)
f = get_next_file_rr(td, FIO_FILE_OPEN, FIO_FILE_CLOSING);
else
f = get_next_file_rand(td, FIO_FILE_OPEN, FIO_FILE_CLOSING);