The test case zbd/007 utilizes blkzone command from util-linux project
to reset zones of test target devices. Recently, blkzone was modified to
report EBUSY error when it was called to change zone status of devices
used by the system. This avoids unintended zone status change by mistake
and good for most of use cases.
However this change triggered failure of the test case zbd/007 with the
EBUSY error. The test case executes blkzone to reset zones of block devices
which the system maps to container devices such as dm-linear.
To avoid this failure, modify zbd/007 to check if blkzone supports --force
option. And if it is supported, add it to blkzone command line. This option
was introduced to blkzone to allow zone status change of devices even when
the system use them.
Signed-off-by: Shin'ichiro Kawasaki <shinichiro.kawasaki@wdc.com>
# Reset and move write pointers of the container device
for ((i=0; i < ${#test_z[@]}; i++)); do
- local -a arr
+ local -a arr opts
read -r -a arr < <(_get_dev_container_and_sector \
"${test_z_start[i]}")
echo "${container_dev}" "${container_start}" >> "$FULL"
- if ! blkzone reset -o "${container_start}" -c 1 \
- "${container_dev}"; then
+ opts=(-o "${container_start}" -c 1)
+ if blkzone -h | grep -q -e --force; then
+ opts+=(--force)
+ fi
+ if ! blkzone reset "${opts[@]}" "${container_dev}"; then
echo "Reset zone failed"
return 1
fi