On 2021/05/13 7:36, Niklas Cassel wrote: > From: Niklas Cassel <niklas.cassel@xxxxxxx> > > There is an upper limit that is checked for each td, and for each file, > even though a file has a pointer to a zoned_block_device_info that has > already been created. Multiple files, from the same or from another td > can point to the same zoned_block_device_info. > All zoned_block_device_info:s have already been created earlier in the > call chain. > > Simplify this by only checking the upper limit on max open zones when a > zoned_block_device_info is created. > > This way, max_open_zones is handled from a single location, instead of > potentially being reassigned from a completely different location. > > Signed-off-by: Niklas Cassel <niklas.cassel@xxxxxxx> > --- > zbd.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/zbd.c b/zbd.c > index eed796b3..8ed8f195 100644 > --- a/zbd.c > +++ b/zbd.c > @@ -588,7 +588,8 @@ static int zbd_create_zone_info(struct thread_data *td, struct fio_file *f) > > if (ret == 0) { > f->zbd_info->model = zbd_model; > - f->zbd_info->max_open_zones = td->o.max_open_zones; > + f->zbd_info->max_open_zones = > + td->o.max_open_zones ?: ZBD_MAX_OPEN_ZONES; f->zbd_info->max_open_zones = min_not_zero(td->o.max_open_zones, ZBD_MAX_OPEN_ZONES); is more readable (easier to understand), no ? > } > return ret; > } > @@ -726,8 +727,6 @@ int zbd_setup_files(struct thread_data *td) > if (zbd_is_seq_job(f)) > assert(f->min_zone < f->max_zone); > > - zbd->max_open_zones = zbd->max_open_zones ?: ZBD_MAX_OPEN_ZONES; > - > if (td->o.max_open_zones > 0 && > zbd->max_open_zones != td->o.max_open_zones) { > log_err("Different 'max_open_zones' values\n"); > -- Damien Le Moal Western Digital Research