Merge branch 'master' into gfio
[fio.git] / filesetup.c
index ac69c65ea8f44956debb01bca32bef41c2675fb2..4a2383f1718ab390b9fc7ab4d3a05cb747d0ee7d 100644 (file)
@@ -12,6 +12,7 @@
 #include "smalloc.h"
 #include "filehash.h"
 #include "os/os.h"
+#include "hash.h"
 
 #ifdef FIO_HAVE_LINUX_FALLOCATE
 #include <linux/falloc.h>
@@ -94,9 +95,9 @@ static int extend_file(struct thread_data *td, struct fio_file *f)
 
                        r = fallocate(f->fd, FALLOC_FL_KEEP_SIZE, 0,
                                        f->real_file_size);
-                       if (r != 0) {
+                       if (r != 0)
                                td_verror(td, errno, "fallocate");
-                       }
+
                        break;
 #endif /* FIO_HAVE_LINUX_FALLOCATE */
                default:
@@ -864,17 +865,18 @@ int pre_read_files(struct thread_data *td)
 
 static int __init_rand_distribution(struct thread_data *td, struct fio_file *f)
 {
-       unsigned int range_size;
+       unsigned int range_size, seed;
        unsigned long nranges;
 
        range_size = min(td->o.min_bs[DDIR_READ], td->o.min_bs[DDIR_WRITE]);
 
        nranges = (f->real_file_size + range_size - 1) / range_size;
 
+       seed = jhash(f->file_name, strlen(f->file_name), 0) * td->thread_number;
        if (td->o.random_distribution == FIO_RAND_DIST_ZIPF)
-               zipf_init(&f->zipf, nranges, td->o.zipf_theta);
+               zipf_init(&f->zipf, nranges, td->o.zipf_theta.u.f, seed);
        else
-               pareto_init(&f->zipf, nranges, td->o.pareto_h);
+               pareto_init(&f->zipf, nranges, td->o.pareto_h.u.f, seed);
 
        return 1;
 }