X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=io_u.c;h=31d3b14be50d0e124a8de277245cc043f4d1c624;hp=1077c27b1f07a43014ea527de0f985037a0a2083;hb=2c187c0fcaab8a4c6d1ba67d2ad2460b5fb42109;hpb=8fd15a9a8d64deae4c2f13b02e1df7e23ea3cafb diff --git a/io_u.c b/io_u.c index 1077c27b..31d3b14b 100644 --- a/io_u.c +++ b/io_u.c @@ -100,7 +100,7 @@ static int get_next_free_block(struct thread_data *td, struct fio_file *f, static int get_next_rand_offset(struct thread_data *td, struct fio_file *f, int ddir, unsigned long long *b) { - unsigned long long max_blocks = f->file_size / td->o.min_bs[ddir]; + unsigned long long max_blocks = f->io_size / td->o.min_bs[ddir]; unsigned long long r, rb; int loops = 5; @@ -250,7 +250,7 @@ static enum fio_ddir get_rw_ddir(struct thread_data *td) */ ddir = get_rand_ddir(td); max_bytes = td->this_io_bytes[ddir]; - if (max_bytes >= (td->io_size * td->o.rwmix[ddir] / 100)) { + if (max_bytes >= (td->o.size * td->o.rwmix[ddir] / 100)) { if (!td->rw_end_set[ddir]) { td->rw_end_set[ddir] = 1; memcpy(&td->rw_end[ddir], &now, sizeof(now)); @@ -310,7 +310,7 @@ static int fill_io_u(struct thread_data *td, struct io_u *io_u) !(td->io_issues[DDIR_WRITE] % td->o.fsync_blocks) && td->io_issues[DDIR_WRITE] && should_fsync(td)) { io_u->ddir = DDIR_SYNC; - return 0; + goto out; } io_u->ddir = get_rw_ddir(td); @@ -335,6 +335,7 @@ static int fill_io_u(struct thread_data *td, struct io_u *io_u) /* * If using a write iolog, store this entry. */ +out: if (td->o.write_iolog_file) write_iolog_put(td, io_u);