On Thu, 2022-10-27 at 15:01 +0900, Shin'ichiro Kawasaki wrote: > Add the helper function zbd_zone_remainder(), which returns bytes can be > written to the zone. Use this function to improve readability. It will > Nit: the "bytes can be written to the zone" part could be phrased a bit better by saying "the number of bytes that are still available for writing before the zone gets full" instead. > also be used in the following patch. > > Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@xxxxxxx> > --- > zbd.c | 21 ++++++++++++++++----- > 1 file changed, 16 insertions(+), 5 deletions(-) > > diff --git a/zbd.c b/zbd.c > index 627fb968..3e9c66d9 100644 > --- a/zbd.c > +++ b/zbd.c > @@ -70,6 +70,18 @@ static inline uint64_t zbd_zone_capacity_end(const struct > fio_zone_info *z) > return z->start + z->capacity; > } > > +/** > + * zbd_zone_remainder - Return bytes can be written to the zone. > + * @z: zone info pointer. > + */ > +static inline uint64_t zbd_zone_remainder(struct fio_zone_info *z) > +{ > + if (z->wp >= zbd_zone_capacity_end(z)) > + return 0; > + > + return zbd_zone_capacity_end(z) - z->wp; > +} > + > /** > * zbd_zone_full - verify whether a minimum number of bytes remain in a zone > * @f: file pointer. > @@ -83,8 +95,7 @@ static bool zbd_zone_full(const struct fio_file *f, struct > fio_zone_info *z, > { > assert((required & 511) == 0); > > - return z->has_wp && > - z->wp + required > zbd_zone_capacity_end(z); > + return z->has_wp && required > zbd_zone_remainder(z); > } > > static void zone_lock(struct thread_data *td, const struct fio_file *f, > @@ -440,7 +451,7 @@ static bool zbd_open_zone(struct thread_data *td, const > struct fio_file *f, > * already in-flight, handle it as a full zone instead of an > * open zone. > */ > - if (z->wp >= zbd_zone_capacity_end(z)) > + if (!zbd_zone_remainder(z)) > res = false; > goto out; > } > @@ -1368,7 +1379,7 @@ found_candidate_zone: > /* Both z->mutex and zbdi->mutex are held. */ > > examine_zone: > - if (z->wp + min_bs <= zbd_zone_capacity_end(z)) { > + if (zbd_zone_remainder(z) >= min_bs) { > pthread_mutex_unlock(&zbdi->mutex); > goto out; > } > @@ -1433,7 +1444,7 @@ retry: > z = zbd_get_zone(f, zone_idx); > > zone_lock(td, f, z); > - if (z->wp + min_bs <= zbd_zone_capacity_end(z)) > + if (zbd_zone_remainder(z) >= min_bs) > goto out; > pthread_mutex_lock(&zbdi->mutex); > }