Merge branch 'openbsd_swap' of https://github.com/bsdkurt/fio
[fio.git] / zbd.c
diff --git a/zbd.c b/zbd.c
index fb81b532bc37b7f9d3406442d80f24f7d8e056d9..ee8bcb30416a0fdc12af8a9ce79d5e9d1e341427 100644 (file)
--- a/zbd.c
+++ b/zbd.c
 #include <sys/stat.h>
 #include <unistd.h>
 #include <linux/blkzoned.h>
+
 #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)) {