X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=filesetup.c;h=cb7047c5afe58019809802a0a8cb77e6e400f507;hb=615c794cbf851c994e94fffe8b8f565e64f137a5;hp=fb556d8444e4a1a29b027a6e53ffecab3708898d;hpb=2ea393df3256e44398558c264f035f8db7656b08;p=fio.git diff --git a/filesetup.c b/filesetup.c index fb556d84..cb7047c5 100644 --- a/filesetup.c +++ b/filesetup.c @@ -768,7 +768,7 @@ open_again: else from_hash = file_lookup_open(f, flags); } else if (td_read(td)) { - if (f->filetype == FIO_TYPE_CHAR && !read_only) + if (td_ioengine_flagged(td, FIO_RO_NEEDS_RW_OPEN) && !read_only) flags |= O_RDWR; else flags |= O_RDONLY; @@ -1454,7 +1454,7 @@ static void __init_rand_distribution(struct thread_data *td, struct fio_file *f) seed = jhash(f->file_name, strlen(f->file_name), 0) * td->thread_number; if (!td->o.rand_repeatable) - seed = td->rand_seeds[4]; + seed = td->rand_seeds[FIO_RAND_BLOCK_OFF]; if (td->o.random_distribution == FIO_RAND_DIST_ZIPF) zipf_init(&f->zipf, nranges, td->o.zipf_theta.u.f, td->o.random_center.u.f, seed); @@ -1486,7 +1486,7 @@ static bool init_rand_distribution(struct thread_data *td) /* * Check if the number of blocks exceeds the randomness capability of - * the selected generator. Tausworthe is 32-bit, the others are fullly + * the selected generator. Tausworthe is 32-bit, the others are fully * 64-bit capable. */ static int check_rand_gen_limits(struct thread_data *td, struct fio_file *f, @@ -2031,11 +2031,12 @@ void dup_files(struct thread_data *td, struct thread_data *org) if (!org->files) return; - td->files = malloc(org->files_index * sizeof(f)); + td->files = calloc(org->files_index, sizeof(f)); if (td->o.file_lock_mode != FILE_LOCK_NONE) td->file_locks = malloc(org->files_index); + assert(org->files_index >= org->o.nr_files); for_each_file(org, f, i) { struct fio_file *__f;