From: Niklas Cassel <niklas.cassel@xxxxxxx> Improve max open zones handling by introducing a new IO engine operation, which can be implemented by ioengines. Also provide a default implementation for Linux, which parses sysfs for the max open zones value. Update libzbc ioengine to utilize the new callback. Having this callback has the two following advantages: 1) If the user forgets to specify a --max_open_zones value, we will automatically use the maximum the drive supports. (Instead of getting errors because fio tries to open too many zones.) 2) If the user specifies a --max_open_zones value that is too big, we will return an error and fio will exit with a proper error message. (Instead of getting errors because fio tries to open too many zones.) Changes since v1: -Fixed all review comments from Damien, except the unconditional logging, I still think that a debug print is sufficient. -Picked up Reviewed-by tag by Damien on patch 4/4. Niklas Cassel (4): zbd: only put an upper limit on max open zones once oslib/linux-blkzoned: move sysfs reading into its own function ioengines: add get_max_open_zones zoned block device operation engines/libzbc: add support for the get_max_open_zones io op engines/libzbc.c | 21 +++++++++ engines/skeleton_external.c | 13 ++++++ ioengines.h | 4 +- oslib/blkzoned.h | 7 +++ oslib/linux-blkzoned.c | 83 ++++++++++++++++++++++++--------- zbd.c | 91 ++++++++++++++++++++++++++++++++++--- 6 files changed, 190 insertions(+), 29 deletions(-) -- 2.25.1