X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=io_u.c;h=b48c99dad3ed4a3eb25650de53f59203463af850;hb=946ff86535e86f9b1be618bd4b8ae925343f1df3;hp=b0f43557d509ff1201f77e953883a4ca1562ec09;hpb=5a7c56804dafab5770797044a4f1d259fe708dfb;p=fio.git diff --git a/io_u.c b/io_u.c index b0f43557..b48c99da 100644 --- a/io_u.c +++ b/io_u.c @@ -158,7 +158,6 @@ static int get_next_offset(struct thread_data *td, struct io_u *io_u) static unsigned int get_next_buflen(struct thread_data *td, struct io_u *io_u) { - struct fio_file *f = io_u->file; const int ddir = io_u->ddir; unsigned int buflen; long r; @@ -453,7 +452,7 @@ static struct fio_file *get_next_file(struct thread_data *td) assert(td->o.nr_files <= td->files_index); - if (!td->nr_open_files) + if (!td->nr_open_files || td->nr_done_files >= td->o.nr_files) return NULL; f = td->file_service_file; @@ -474,6 +473,9 @@ static struct fio_file *find_next_new_file(struct thread_data *td) { struct fio_file *f; + if (!td->nr_open_files || td->nr_done_files >= td->o.nr_files) + return NULL; + if (td->o.file_service_type == FIO_FSERVICE_RR) f = get_next_file_rr(td, 0, FIO_FILE_OPEN); else @@ -549,6 +551,7 @@ set_file: io_u->file = NULL; td_io_close_file(td, f); f->flags |= FIO_FILE_DONE; + td->nr_done_files++; /* * probably not the right place to do this, but see