When zonemode is zbd and block size is not divisor of zone size, write target zone selection does not work as expected. First three patches in this series fix the issue by introducing zone finish operation. First two patches do preparation and the 3rd patch does the fix. This series also fix four more issues related to verify with zonemode zbd. The first issue is that verify is allowed only when block size is divisor of zone size. The 4th patch removes this limitation. The second and third issue are caused by zone reset, which erases data pattern for verify. The 5th and 6th patches adjust verify and zone reset timing to avoid verify errors by the erased data pattern. The last issue is experimental verify, which does not work with zonemode=zbd. The 7th patch checks options to error out when experimental verify is specified together with zonemode=zbd. Four more patches follow to make test cases in t/zbd match with the fixes. Shin'ichiro Kawasaki (11): oslib: blkzoned: add blkzoned_finish_zone() helper function engines/libzbc: add libzbc_finish_zone() helper function zbd: finish zones with remainder smaller than minimum write block size zbd: allow block size not divisor of zone size zbd: verify before zone reset for zone_reset_threshold option zbd: fix zone reset condition for verify_backlog option zbd: prevent experimental verify with zonemode=zbd t/zbd: fix test case #33 for block size unaligned to zone size t/zbd: modify test case #34 for block size unaligned to zone size t/zbd: add test case to check zone_reset_threshold option with verify t/zbd: remove experimental_verify option from test case #54 engines/libzbc.c | 34 ++++++++++ ioengines.h | 2 + oslib/blkzoned.h | 8 +++ oslib/linux-blkzoned.c | 37 +++++++++++ t/zbd/test-zbd-support | 44 +++++++++---- zbd.c | 146 ++++++++++++++++++++++++++--------------- zbd.h | 2 - 7 files changed, 207 insertions(+), 66 deletions(-) -- 2.37.1