summaryrefslogtreecommitdiff
path: root/zbd.c
diff options
context:
space:
mode:
Diffstat (limited to 'zbd.c')
-rw-r--r--zbd.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/zbd.c b/zbd.c
index b89d56c4..2a324d34 100644
--- a/zbd.c
+++ b/zbd.c
@@ -31,7 +31,10 @@ int zbd_get_zoned_model(struct thread_data *td, struct fio_file *f,
{
int ret;
- ret = blkzoned_get_zoned_model(td, f, model);
+ if (td->io_ops && td->io_ops->get_zoned_model)
+ ret = td->io_ops->get_zoned_model(td, f, model);
+ else
+ ret = blkzoned_get_zoned_model(td, f, model);
if (ret < 0) {
td_verror(td, errno, "get zoned model failed");
log_err("%s: get zoned model failed (%d).\n",
@@ -62,7 +65,10 @@ int zbd_report_zones(struct thread_data *td, struct fio_file *f,
{
int ret;
- ret = blkzoned_report_zones(td, f, offset, zones, nr_zones);
+ if (td->io_ops && td->io_ops->report_zones)
+ ret = td->io_ops->report_zones(td, f, offset, zones, nr_zones);
+ else
+ ret = blkzoned_report_zones(td, f, offset, zones, nr_zones);
if (ret < 0) {
td_verror(td, errno, "report zones failed");
log_err("%s: report zones from sector %llu failed (%d).\n",
@@ -92,7 +98,10 @@ int zbd_reset_wp(struct thread_data *td, struct fio_file *f,
{
int ret;
- ret = blkzoned_reset_wp(td, f, offset, length);
+ if (td->io_ops && td->io_ops->reset_wp)
+ ret = td->io_ops->reset_wp(td, f, offset, length);
+ else
+ ret = blkzoned_reset_wp(td, f, offset, length);
if (ret < 0) {
td_verror(td, errno, "resetting wp failed");
log_err("%s: resetting wp for %llu sectors at sector %llu failed (%d).\n",
@@ -623,7 +632,6 @@ static int zbd_reset_range(struct thread_data *td, struct fio_file *f,
struct fio_zone_info *zb, *ze, *z;
int ret = 0;
- assert(f->fd != -1);
assert(is_valid_offset(f, offset + length - 1));
switch (f->zbd_info->model) {
@@ -699,7 +707,6 @@ static int zbd_reset_zones(struct thread_data *td, struct fio_file *f,
dprint(FD_ZBD, "%s: examining zones %u .. %u\n", f->file_name,
zbd_zone_nr(f->zbd_info, zb), zbd_zone_nr(f->zbd_info, ze));
- assert(f->fd != -1);
for (z = zb; z < ze; z++) {
if (!zbd_zone_swr(z))
continue;