Re: [PATCH v3 1/9] fstests: add _loop_image_create_clone() helper

Amir Goldstein <[email protected]>
Newsgroups org.kernel.vger.fstests,org.kernel.vger.linux-btrfs,org.kernel.vger.linux-ext4,org.kernel.vger.linux-xfs
Message-ID <CAOQ4uxjEcHiqzB+JrnzDExMcBuTbLaPT5qQcEDX0GO0TX7hp=g@mail.gmail.com>
On Mon, Apr 27, 2026 at 12:19 PM Anand Jain <[email protected]> wrote:
>
> Introduce _loop_image_create_clone() and _loop_image_destroy() to mkfs an
> image file and clone it to another image file, and attach a loop device to
> them. And its destroy part.
>
> Signed-off-by: Anand Jain <[email protected]>
> ---
>  common/rc | 44 ++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 44 insertions(+)
>
> diff --git a/common/rc b/common/rc
> index 9632b211b58f..0e7b7eb1d98f 100644
> --- a/common/rc
> +++ b/common/rc
> @@ -1503,6 +1503,50 @@ _scratch_resvblks()
>         esac
>  }
>
> +_loop_image_create_clone()
> +{
> +       local -n _ret=$1
> +       local pre_clone_tune_func=$2
> +       local img_file=$TEST_DIR/${seq}.img
> +       local img_file_clone=$TEST_DIR/${seq}_clone.img
> +       local size=$(_small_fs_size_mb 128) # Smallest possible
> +       local loop_devs
> +
> +       size=$((size * 1024 * 1024))
> +       $XFS_IO_PROG -f -c "truncate $size" $img_file
> +
> +       loop_devs=$(_create_loop_device $img_file)
> +       _ret=($loop_devs)
> +
> +       case $FSTYP in
> +       xfs)
> +               _mkfs_dev "-s size=4096" $img_file
> +               ;;
> +       btrfs)
> +               _mkfs_dev $img_file
> +               ;;
> +       *)
> +               _mkfs_dev $img_file

You making a wrong assumption that FSTYP can format the loop devices

You should add _require_block_device $SCRATCH_DEV
to all your tests or maybe nicer, add:

_require_loop_mountable which requires loop and block dev fs
and use this requirement instead of just _require_loop in all tests.

Thanks,
Amir.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.