> zbd_adjust_block > + if (td_rw(td) && !f->zbd_info->sectors_with_data > + && !td->o.read_beyond_wp) > + io_u->ddir = DDIR_WRITE; Oh, you've noticed this too. :-) This will issue the first write with wrong length if bs[DDIR_READ] != bs[DDIR_WRITE]. Adjusting in zbd_adjust_block() is too late.