From: Jens Axboe Date: Thu, 1 Mar 2007 09:04:15 +0000 (+0100) Subject: Fix for file_service_type=random X-Git-Tag: fio-1.13~16 X-Git-Url: https://git.kernel.dk/?p=fio.git;a=commitdiff_plain;h=7c83c089a9b8bd742f788157ac47a5af363adb19 Fix for file_service_type=random We need to retrieve a new random offset if the file is closed, obviously. Signed-off-by: Jens Axboe --- diff --git a/io_u.c b/io_u.c index 978771e1..6df4b5ee 100644 --- a/io_u.c +++ b/io_u.c @@ -329,11 +329,12 @@ static void io_u_mark_latency(struct thread_data *td, unsigned long msec) */ static struct fio_file *get_next_file_rand(struct thread_data *td) { - long r = os_random_long(&td->next_file_state); unsigned int fileno; struct fio_file *f; do { + long r = os_random_long(&td->next_file_state); + fileno = (unsigned int) ((double) (td->nr_files - 1) * r / (RAND_MAX + 1.0)); f = &td->files[fileno]; if (f->fd != -1)