null engine: don't dup() stdin anymore
[fio.git] / io_u.c
diff --git a/io_u.c b/io_u.c
index 0c604dff8640cde9ae25b000b5f33124c0d9c51e..94bf30034452277a91eaa2a0c9474b1174627abd 100644 (file)
--- a/io_u.c
+++ b/io_u.c
@@ -107,7 +107,7 @@ static int get_next_offset(struct thread_data *td, struct io_u *io_u)
 
        if (td_random(td)) {
                unsigned long long max_blocks = f->file_size / td->min_bs[ddir];
-               int loops = 2;
+               int loops = 5;
 
                do {
                        r = os_random_long(&td->random_state);
@@ -335,9 +335,9 @@ static struct fio_file *get_next_file_rand(struct thread_data *td)
        do {
                long r = os_random_long(&td->next_file_state);
 
-               fileno = (unsigned int) ((double) (td->open_files - 1) * r / (RAND_MAX + 1.0));
+               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;