From: Shin'ichiro Kawasaki Date: Wed, 22 Jan 2025 01:38:34 +0000 (+0900) Subject: zbd: do not check open zones status and limits when jobs do not write X-Git-Tag: fio-3.39~16 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=f3abed70f69b3940cd1f92c7afd8cffd2cd53685;p=fio.git zbd: do not check open zones status and limits when jobs do not write Currently, fio checks the conditions of each zone within the IO range at the job start. If a zone is in an open condition, it is added to the write target zone array. If the number of write target zones exceeds the max_open_zones or job_max_open_zones limit, fio terminates with the error message "Number of open zones exceeds max_open_zones limit". This check for zone condition and the resulting termination occur even when the job does not perform a write operation, leading to confusion among users. To avoid the confusion, skip the check when jobs do not perform write operations. Additionally, print the message to inform that the job_max_open_zones limit does not work for non-write jobs. Fixes: 954217b90191 ("zbd: Initialize open zones list referring zone status at fio start") Fixes: 8ac768899d63 ("zbd: do not reset extra zones in open conditions") Signed-off-by: Shin'ichiro Kawasaki Reviewed-by: Niklas Cassel Reviewed-by: Damien Le Moal Link: https://lore.kernel.org/r/20250122013835.1223725-2-shinichiro.kawasaki@wdc.com Signed-off-by: Vincent Fu --- diff --git a/zbd.c b/zbd.c index 8a092cbe..ee095b1d 100644 --- a/zbd.c +++ b/zbd.c @@ -1264,6 +1264,16 @@ int zbd_setup_files(struct thread_data *td) return 1; } + /* + * If this job does not do write operations, skip open zone + * condition check. + */ + if (!td_write(td)) { + if (td->o.job_max_open_zones) + log_info("'job_max_open_zones' is valid only for write jobs\n"); + continue; + } + /* * The per job max open zones limit cannot be used without a * global max open zones limit. (As the tracking of open zones