Re: [PATCH 3/3] btrfs/249: test btrfs filesystem usage command on missing seed device

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]



On Wed, Oct 20, 2021 at 03:16:44PM +0800, Anand Jain wrote:
> If there is a missing seed device in a sprout, the btrfs filesystem usage
> command fails, which is fixed by the following patches:
> 
>   btrfs: sysfs add devinfo/fsid to retrieve fsid from the device
>   btrfs-progs: read fsid from the sysfs in device_is_seed
> 
> Test if it works now after these patches in the kernel and in the
> btrfs-progs respectively.
> 
> Suggested-by: Josef Bacik <josef@xxxxxxxxxxxxxx>
> Signed-off-by: Anand Jain <anand.jain@xxxxxxxxxx>

Shouldn't this use


as well?  I wish there was a way to detect that btrfs-progs had support for
reading it but I suppose this is a good enough gate.  Maybe add a


> ---
>  tests/btrfs/249     | 67 +++++++++++++++++++++++++++++++++++++++++++++
>  tests/btrfs/249.out |  2 ++
>  2 files changed, 69 insertions(+)
>  create mode 100755 tests/btrfs/249
>  create mode 100644 tests/btrfs/249.out
> 
> diff --git a/tests/btrfs/249 b/tests/btrfs/249
> new file mode 100755
> index 000000000000..f8f2f07052c6
> --- /dev/null
> +++ b/tests/btrfs/249
> @@ -0,0 +1,67 @@
> +#! /bin/bash
> +# SPDX-License-Identifier: GPL-2.0
> +# Copyright (c) 2021 Anand Jain.  All Rights Reserved.
> +# Copyright (c) 2021 Oracle.  All Rights Reserved.
> +#
> +# FS QA Test 249
> +#
> +# Validate if the command 'btrfs filesystem usage' works with missing seed
> +# device
> +# Steps:
> +#  Create a degraded raid1 seed device
> +#  Create a sprout filesystem (an rw device on top of a seed device)
> +#  Dump 'btrfs filesystem usage', check it didn't fail
> +#
> +# Tests btrfs-progs bug fixed by the kernel patch and a btrfs-prog patch
> +#   btrfs: sysfs add devinfo/fsid to retrieve fsid from the device
> +#   btrfs-progs: read fsid from the sysfs in device_is_seed
> +
> +. ./common/preamble
> +_begin_fstest auto quick seed volume
> +
> +# Import common functions.
> +# . ./common/filter
> +
> +# real QA test starts here
> +
> +# Modify as appropriate.
> +_supported_fs btrfs
> +_require_scratch_dev_pool 3
> +_require_command "$WIPEFS_PROG" wipefs
> +_require_btrfs_forget_or_module_loadable

Need

_require_btrfs_sysfs_fsid

here I think.

> +
> +_scratch_dev_pool_get 2
> +# use the scratch devices as seed devices
> +seed_dev1=$(echo $SCRATCH_DEV_POOL | $AWK_PROG '{ print $1 }')
> +seed_dev2=$(echo $SCRATCH_DEV_POOL | $AWK_PROG '{ print $2 }')
> +
> +# use the spare device as a sprout device
> +_spare_dev_get
> +sprout_dev=$SPARE_DEV
> +
> +# create raid1 seed filesystem
> +_scratch_pool_mkfs "-draid1 -mraid1" >> $seqres.full 2>&1
> +$BTRFS_TUNE_PROG -S 1 $seed_dev1
> +$WIPEFS_PROG -a $seed_dev1 >> $seqres.full 2>&1
> +_btrfs_forget_or_module_reload
> +_mount -o degraded $seed_dev2 $SCRATCH_MNT >> $seqres.full 2>&1
> +
> +# create a sprout device
> +$BTRFS_UTIL_PROG device add -f $SPARE_DEV $SCRATCH_MNT >> $seqres.full 2>&1
> +
> +# dump filesystem usage if it fails error goes to the bad.out file
> +$BTRFS_UTIL_PROG filesystem usage $SCRATCH_MNT >> $seqres.full
> +# also check for the error code
> +ret=$?
> +if [ $ret != 0 ]; then
> +	_fail "FAILED: btrfs filesystem usage, ret $ret"

Can you add "check your btrfs-progs version" here or something?  In case I'm an
idiot and forget to update btrfs-progs on the overnight xfstests boxes?  Thanks,

Josef



[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux