Skip to content

Commit

Permalink
zbd: use ->min_zone, ->max_zone in more places
Browse files Browse the repository at this point in the history
Check that ->min_zone is less than ->max_zone.
This assert found one bug here.

Use it in more places, now that it was added.

Reviewed-by: Dmitry Fomichev <dmitry.fomichev@wdc.com>
Signed-off-by: Alexey Dobriyan (SK hynix) <adobriyan@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
  • Loading branch information
Alexey Dobriyan authored and axboe committed Aug 13, 2020
1 parent 84abeef commit 5c79c32
Showing 1 changed file with 5 additions and 6 deletions.
11 changes: 5 additions & 6 deletions zbd.c
Original file line number Diff line number Diff line change
Expand Up @@ -319,6 +319,7 @@ static bool zbd_verify_sizes(void)

f->min_zone = zbd_zone_idx(f, f->file_offset);
f->max_zone = zbd_zone_idx(f, f->file_offset + f->io_size);
assert(f->min_zone < f->max_zone);
}
}

Expand Down Expand Up @@ -839,9 +840,8 @@ static uint64_t zbd_process_swd(const struct fio_file *f, enum swd_action a)
struct fio_zone_info *zb, *ze, *z;
uint64_t swd = 0;

zb = &f->zbd_info->zone_info[zbd_zone_idx(f, f->file_offset)];
ze = &f->zbd_info->zone_info[zbd_zone_idx(f, f->file_offset +
f->io_size)];
zb = &f->zbd_info->zone_info[f->min_zone];
ze = &f->zbd_info->zone_info[f->max_zone];
for (z = zb; z < ze; z++) {
pthread_mutex_lock(&z->mutex);
swd += z->wp - z->start;
Expand Down Expand Up @@ -1175,7 +1175,7 @@ zbd_find_zone(struct thread_data *td, struct io_u *io_u,
struct fio_file *f = io_u->file;
struct fio_zone_info *z1, *z2;
const struct fio_zone_info *const zf =
&f->zbd_info->zone_info[zbd_zone_idx(f, f->file_offset)];
&f->zbd_info->zone_info[f->min_zone];

/*
* Skip to the next non-empty zone in case of sequential I/O and to
Expand Down Expand Up @@ -1482,8 +1482,7 @@ enum io_u_action zbd_adjust_block(struct thread_data *td, struct io_u *io_u)
if (range < min_bs ||
((!td_random(td)) && (io_u->offset + min_bs > zb->wp))) {
pthread_mutex_unlock(&zb->mutex);
zl = &f->zbd_info->zone_info[zbd_zone_idx(f,
f->file_offset + f->io_size)];
zl = &f->zbd_info->zone_info[f->max_zone];
zb = zbd_find_zone(td, io_u, zb, zl);
if (!zb) {
dprint(FD_ZBD,
Expand Down

0 comments on commit 5c79c32

Please sign in to comment.