X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=filesetup.c;h=580403dbc232aa8676d2a3933c3eac4a5f7e31a5;hb=bfbdd35b3e8f7de1bf1f48e7087c04a6b37e9c61;hp=94a025e6c1064e442dc18254d08e3f002dcae644;hpb=230f33fbb6e0713d1189ea5d3295a8f536bac8d8;p=fio.git diff --git a/filesetup.c b/filesetup.c index 94a025e6..580403db 100644 --- a/filesetup.c +++ b/filesetup.c @@ -14,6 +14,7 @@ #include "hash.h" #include "lib/axmap.h" #include "rwlock.h" +#include "zbd.h" #ifdef CONFIG_LINUX_FALLOCATE #include @@ -1142,9 +1143,6 @@ int setup_files(struct thread_data *td) if (err) goto err_out; - if (!o->zone_size) - o->zone_size = o->size; - /* * iolog already set the total io size, if we read back * stored entries. @@ -1161,7 +1159,14 @@ done: td->done = 1; td_restore_runstate(td, old_state); + + if (td->o.zone_mode == ZONE_MODE_ZBD) { + err = zbd_init(td); + if (err) + goto err_out; + } return 0; + err_offset: log_err("%s: you need to specify valid offset=\n", o->name); err_out: @@ -1349,6 +1354,8 @@ void close_and_free_files(struct thread_data *td) td_io_unlink_file(td, f); } + zbd_free_zone_info(f); + if (use_free) free(f->file_name); else @@ -1873,6 +1880,8 @@ void fio_file_reset(struct thread_data *td, struct fio_file *f) axmap_reset(f->io_axmap); else if (fio_file_lfsr(f)) lfsr_reset(&f->lfsr, td->rand_seeds[FIO_RAND_BLOCK_OFF]); + + zbd_file_reset(td, f); } bool fio_files_done(struct thread_data *td)