X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=zbd.c;h=ee8bcb30416a0fdc12af8a9ce79d5e9d1e341427;hb=f07528f0629efa0c55bbdb1bdcc9dfdacc32fb47;hp=fb81b532bc37b7f9d3406442d80f24f7d8e056d9;hpb=4d37720ae029bf66556e4f847628f8cb9f35ef47;p=fio.git diff --git a/zbd.c b/zbd.c index fb81b532..ee8bcb30 100644 --- a/zbd.c +++ b/zbd.c @@ -13,10 +13,12 @@ #include #include #include + #include "file.h" #include "fio.h" #include "lib/pow2.h" #include "log.h" +#include "oslib/asprintf.h" #include "smalloc.h" #include "verify.h" #include "zbd.h" @@ -120,6 +122,20 @@ static bool zbd_verify_sizes(void) if (!zbd_is_seq_job(f)) continue; + if (!td->o.zone_size) { + td->o.zone_size = f->zbd_info->zone_size; + if (!td->o.zone_size) { + log_err("%s: invalid 0 zone size\n", + f->file_name); + return false; + } + } else if (td->o.zone_size != f->zbd_info->zone_size) { + log_err("%s: job parameter zonesize %llu does not match disk zone size %llu.\n", + f->file_name, (unsigned long long) td->o.zone_size, + (unsigned long long) f->zbd_info->zone_size); + return false; + } + if (td->o.zone_skip && (td->o.zone_skip < td->o.zone_size || td->o.zone_skip % td->o.zone_size)) {