Merge branch 'rand-map'
[fio.git] / filesetup.c
index c96c2502a46bdec4494d2141cd5a2078a75d2014..9fb325bd18b392f1c1419a01a6518b34da6d90fb 100644 (file)
@@ -13,7 +13,7 @@
 #include "filehash.h"
 #include "os/os.h"
 #include "hash.h"
-#include "lib/bitmap.h"
+#include "lib/axmap.h"
 
 #ifdef FIO_HAVE_LINUX_FALLOCATE
 #include <linux/falloc.h>
@@ -911,14 +911,20 @@ int init_random_map(struct thread_data *td)
 
        if (init_rand_distribution(td))
                return 0;
-       if (td->o.norandommap || !td_random(td))
+       if (!td_random(td))
                return 0;
 
        for_each_file(td, f, i) {
                blocks = (f->real_file_size + td->o.rw_min_bs - 1) /
                                (unsigned long long) td->o.rw_min_bs;
-               f->io_bitmap = bitmap_new(blocks);
-               if (f->io_bitmap)
+               if (td->o.random_generator == FIO_RAND_GEN_LFSR) {
+                       if (!lfsr_init(&f->lfsr, blocks))
+                               continue;
+               } else if (!td->o.norandommap) {
+                       f->io_axmap = axmap_new(blocks);
+                       if (f->io_axmap)
+                               continue;
+               } else if (td->o.norandommap)
                        continue;
 
                if (!td->o.softrandommap) {
@@ -967,8 +973,8 @@ void close_and_free_files(struct thread_data *td)
 
                sfree(f->file_name);
                f->file_name = NULL;
-               bitmap_free(f->io_bitmap);
-               f->io_bitmap = NULL;
+               axmap_free(f->io_axmap);
+               f->io_axmap = NULL;
                sfree(f);
        }