Re: [PATCH 2/2] xfs: Add test for mkfs with smaller zone capacity

Zorro Lang
2025-11-22T08:36:58Z

On Thu, Nov 20, 2025 at 05:08:30PM +0100, cem@kernel.org wrote:
> From: Carlos Maiolino <cem@kernel.org>
>
> Add a regression test for initializing zoned block devices with
> sequential zones with a capacity smaller than the conventional
> zones capacity.
>
> Signed-off-by: Carlos Maiolino <cmaiolino@redhat.com>
> ---
> tests/xfs/333 | 37 +++++++++++++++++++++++++++++++++++++
> tests/xfs/333.out | 2 ++
> 2 files changed, 39 insertions(+)
> create mode 100755 tests/xfs/333
> create mode 100644 tests/xfs/333.out
>
> diff --git a/tests/xfs/333 b/tests/xfs/333
> new file mode 100755
> index 000000000000..f045b13c73ee
> --- /dev/null
> +++ b/tests/xfs/333
> @@ -0,0 +1,37 @@
> +#! /bin/bash
> +# SPDX-License-Identifier: GPL-2.0
> +# Copyright (c) 2025 Red Hat, Inc. All Rights Reserved.
> +#
> +# FS QA Test 333
> +#
> +# Test that mkfs can properly initialize zoned devices
> +# with a sequential zone capacity smaller than the conventional zone.
> +#
> +. ./common/preamble
> +. ./common/zoned
> +
> +_begin_fstest auto zone mkfs quick
> +_cleanup()
> +{
> + _destroy_zloop $zloop

cd /
rm -r -f $tmp.*

> +}
> +
> +_require_scratch

_require_block_device $SCRATCH_DEV

> +_require_zloop

g/781 checks if current $FSTYP supports zoned filesystem, and _notrun if it's
not supported:

_try_mkfs_dev $zloop >> $seqres.full 2>&1 ||\
_notrun "cannot mkfs zoned filesystem"

I'm wondering if we could have a common helper for that, then this case can be
a generic test case too.

For example:

_require_zloop_filesystem()
{
_require_zloop

local zloopdir="$TEST_DIR/zloop_test"
local zloop=$(_create_zloop $zloopdir 64 2)

_try_mkfs_dev $zloop >/dev/null 2>&1 || \
_notrun "cannot make $FSTYP on zloop"
_destroy_zloop $zloop
}

But this method takes too much time to run, does anyone have a better idea to help it
to be finished in several seconds?

> +
> +_scratch_mkfs > /dev/null 2>&1
> +_scratch_mount >> $seqres.full
> +
> +zloopdir="$SCRATCH_MNT/zloop"
> +zone_size=64
> +conv_zones=2
> +zone_capacity=63

Better to add a comment to explain what are these numbers for.

> +
> +zloop=$(_create_zloop $zloopdir $zone_size $conv_zones $zone_capacity)
> +
> +_try_mkfs_dev $zloop >> $seqres.full 2>&1 || \
> + _fail "Cannot mkfs zoned filesystem"
> +
> +echo Silence is golden

Is this done? If such zloop device can be created, should we expect it works as usual?

Thanks,
Zorro

> +# success, all done
> +_exit 0
> diff --git a/tests/xfs/333.out b/tests/xfs/333.out
> new file mode 100644
> index 000000000000..60a158987a22
> --- /dev/null
> +++ b/tests/xfs/333.out
> @@ -0,0 +1,2 @@
> +QA output created by 333
> +Silence is golden
> --
> 2.51.1
>