X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=engines%2Flibzbc.c;h=2aacf7bbebecd3ca0d2a5f11a5346ab26c429c86;hb=d2f442bc0bd507510089d56cd510616093415702;hp=fdde8ca65fff242ac7f405aba8a91536db89a5d7;hpb=5a8a6a0343b42d087fa7b65ae884985d0f183c8b;p=fio.git diff --git a/engines/libzbc.c b/engines/libzbc.c index fdde8ca6..2aacf7bb 100644 --- a/engines/libzbc.c +++ b/engines/libzbc.c @@ -86,7 +86,8 @@ static int libzbc_open_dev(struct thread_data *td, struct fio_file *f, return -ENOMEM; ret = zbc_open(f->file_name, - flags | ZBC_O_DRV_SCSI | ZBC_O_DRV_ATA, &ld->zdev); + flags | ZBC_O_DRV_BLOCK | ZBC_O_DRV_SCSI | ZBC_O_DRV_ATA, + &ld->zdev); if (ret) { log_err("%s: zbc_open() failed, err=%d\n", f->file_name, ret); @@ -235,6 +236,11 @@ static int libzbc_report_zones(struct thread_data *td, struct fio_file *f, zbdz->start = zones[i].zbz_start << 9; zbdz->len = zones[i].zbz_length << 9; zbdz->wp = zones[i].zbz_write_pointer << 9; + /* + * ZBC/ZAC do not define zone capacity, so use the zone size as + * the zone capacity. + */ + zbdz->capacity = zbdz->len; switch (zones[i].zbz_type) { case ZBC_ZT_CONVENTIONAL: @@ -278,7 +284,7 @@ static int libzbc_report_zones(struct thread_data *td, struct fio_file *f, default: /* Treat all these conditions as offline (don't use!) */ zbdz->cond = ZBD_ZONE_COND_OFFLINE; - break; + zbdz->wp = zbdz->start; } }