X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=io_u.c;h=e283e7276a84ca75b6a11de4d3c40d9dcd93e716;hp=4698b34d1baa9de6f1f406607c95b2b411dc0a43;hb=e53bd0b3eb06e02b991d4ee05e6d0c427bbc20a0;hpb=e6433576b85eb28d32fe099b38ea64ac006b4b74 diff --git a/io_u.c b/io_u.c index 4698b34d..e283e727 100644 --- a/io_u.c +++ b/io_u.c @@ -337,7 +337,7 @@ static struct fio_file *get_next_file_rand(struct thread_data *td) fileno = (unsigned int) ((double) (td->open_files * r) / (RAND_MAX + 1.0)); f = &td->files[fileno]; - if (f->fd != -1) + if (f->open) return f; } while (1); } @@ -357,7 +357,7 @@ static struct fio_file *get_next_file_rr(struct thread_data *td) if (td->next_file >= td->open_files) td->next_file = 0; - if (f->fd != -1) + if (f->open) break; f = NULL; @@ -448,8 +448,14 @@ struct io_u *get_io_u(struct thread_data *td) * if we need to open a new file */ if (td->nr_open_files < td->nr_files && - td->open_files != td->nr_files) - reopen_file(td, f); + td->open_files != td->nr_files) { + int ret = td_io_open_file(td, f); + + if (ret) { + put_io_u(td, io_u); + return NULL; + } + } } while (1); if (td->zone_bytes >= td->zone_size) {