Re: [PATCH 2/4] btrfs: require discard functionality from scratch device

Eryu Guan
2021-04-25T08:26:29Z

On Fri, Apr 23, 2021 at 08:26:32PM +0900, Johannes Thumshirn wrote:
> Some test cases for btrfs require the scratch device to support discard.
> Check if the scratch device does support discard before trying to execute
> the test.
>
> Signed-off-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
> ---
> common/rc | 8 ++++++++
> tests/btrfs/116 | 1 +
> tests/btrfs/156 | 1 +
> 3 files changed, 10 insertions(+)
>
> diff --git a/common/rc b/common/rc
> index 11ff7635700b..76a7265e23ba 100644
> --- a/common/rc
> +++ b/common/rc
> @@ -3587,6 +3587,14 @@ _require_batched_discard()
> $FSTRIM_PROG $1 > /dev/null 2>&1 || _notrun "FITRIM not supported on $1"
> }
>
> +_require_scratch_discard()
> +{
> + local sdev="$(_short_dev $SCRATCH_DEV)"
> + local discard=$(cat /sys/block/$sdev/queue/discard_granularity)
> +
> + [ $discard -gt 0 ] || _notrun "discard not supported"
> +}
> +
> _require_dumpe2fs()
> {
> if [ -z "$DUMPE2FS_PROG" ]; then
> diff --git a/tests/btrfs/116 b/tests/btrfs/116
> index 3ed097eccf03..f4db439caef8 100755
> --- a/tests/btrfs/116
> +++ b/tests/btrfs/116
> @@ -29,6 +29,7 @@ _cleanup()
> # real QA test starts here
> _supported_fs btrfs
> _require_scratch
> +_require_scratch_discard
>
> rm -f $seqres.full
>
> diff --git a/tests/btrfs/156 b/tests/btrfs/156
> index 89c80e7161e2..56206d99c801 100755
> --- a/tests/btrfs/156
> +++ b/tests/btrfs/156
> @@ -42,6 +42,7 @@ rm -f $seqres.full
> _supported_fs btrfs
> _require_scratch
> _require_fstrim
> +_require_scratch_discard

These two tests already have _require_batched_discard, which will make
sure discard is supported by the device, by actually doing fstrim on
$SCRATCH_MNT. I think that should do the work?

Thanks,
Eryu

>
> # 1024fs size
> fs_size=$((1024 * 1024 * 1024))
> --
> 2.30.0