All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anand Jain <anand.jain@oracle.com>
To: fdmanana@gmail.com
Cc: fstests <fstests@vger.kernel.org>,
	linux-btrfs <linux-btrfs@vger.kernel.org>,
	Filipe David Borba Manana <fdmanana@suse.com>
Subject: Re: [PATCH v2] btrfs: add fstrim test case on the sprout device
Date: Mon, 3 May 2021 18:29:14 +0800	[thread overview]
Message-ID: <8e6a5e5c-5cab-aea3-6be9-8223020084b8@oracle.com> (raw)
In-Reply-To: <CAL3q7H79zG9rm-kOu7rys=ev0Ja_fuTNoYvdz0q6hwgqyQrhkg@mail.gmail.com>



On 03/05/2021 17:54, Filipe Manana wrote:
> On Sat, May 1, 2021 at 6:24 AM Anand Jain <anand.jain@oracle.com> wrote:
>>
>> Add fstrim test case on the sprout device, verify seed device
>> integrity.
>>
>>   btrfs: fix unmountable seed device after fstrim
>>
>> Signed-off-by: Anand Jain <anand.jain@oracle.com>
>> ---
>> v2:
>>    Add _require_fstrim and _require_batched_discard.
>>    Use FSTRIM_PROG.
>>    Use _filter_ro_mount to handle the difference in output in different
>>       mount(8) version.
>>    Call _scratch_dev_pool_put.
>>    Add _check_btrfs_filesystem $seed to check the whole seed fs.
>>    Update in-code comments.
>>
>>   tests/btrfs/236     | 81 +++++++++++++++++++++++++++++++++++++++++++++
>>   tests/btrfs/236.out |  5 +++
>>   tests/btrfs/group   |  1 +
>>   3 files changed, 87 insertions(+)
>>   create mode 100755 tests/btrfs/236
>>   create mode 100644 tests/btrfs/236.out
>>
>> diff --git a/tests/btrfs/236 b/tests/btrfs/236
>> new file mode 100755
>> index 000000000000..aac27fac06dd
>> --- /dev/null
>> +++ b/tests/btrfs/236
>> @@ -0,0 +1,81 @@
>> +#! /bin/bash
>> +# SPDX-License-Identifier: GPL-2.0
>> +# Copyright (c) 2021 Oracle. All Rights Reserved.
>> +#
>> +# FS QA Test 236
>> +#
>> +# Check seed device integrity after fstrim on the sprout device.
>> +#
>> +#  Kernel bug is fixed by the commit:
>> +#    btrfs: fix unmountable seed device after fstrim
>> +
>> +seq=`basename $0`
>> +seqres=$RESULT_DIR/$seq
>> +echo "QA output created by $seq"
>> +
>> +here=`pwd`
>> +tmp=/tmp/$$
>> +status=1       # failure is the default!
>> +trap "_cleanup; exit \$status" 0 1 2 3 15
>> +
>> +_cleanup()
>> +{
>> +       cd /
>> +       rm -f $tmp.*
>> +}
>> +
>> +# get standard environment, filters and checks
>> +. ./common/rc
>> +. ./common/filter
>> +
>> +# remove previous $seqres.full before test
>> +rm -f $seqres.full
>> +
>> +# real QA test starts here
>> +
>> +# Modify as appropriate.
>> +_supported_fs btrfs
>> +_require_command "$BTRFS_TUNE_PROG" btrfstune
>> +_require_fstrim
>> +_require_scratch_dev_pool 2
>> +_scratch_dev_pool_get 2
>> +
>> +seed=$(echo $SCRATCH_DEV_POOL | $AWK_PROG '{print $1}')
>> +sprout=$(echo $SCRATCH_DEV_POOL | $AWK_PROG '{print $2}')
>> +
>> +_mkfs_dev $seed
>> +_mount $seed $SCRATCH_MNT
>> +
>> +$XFS_IO_PROG -f -c "pwrite -S 0xab 0 1M" $SCRATCH_MNT/foo > /dev/null
>> +_scratch_unmount
>> +$BTRFS_TUNE_PROG -S 1 $seed
>> +
>> +# Mount the seed device and add the rw device
>> +_mount $seed $SCRATCH_MNT 2>&1 | _filter_ro_mount | _filter_scratch
>> +md5sum $SCRATCH_MNT/foo | _filter_scratch
>> +
>> +$BTRFS_UTIL_PROG device add -f $sprout $SCRATCH_MNT
>> +_scratch_unmount
>> +
>> +# Now remount writeable sprout device, create some data and run fstrim
>> +_mount $sprout $SCRATCH_MNT
>> +_require_batched_discard $SCRATCH_MNT
>> +
>> +$XFS_IO_PROG -f -c "pwrite -S 0xcd 0 1M" $SCRATCH_MNT/bar > /dev/null
> 
> We aren't doing anything with this file ("bar"). Just remove it.
> 

  Right.  It can go.  I will fix it in v3.
Thanks.


> Otherwise it passes now with the filter.
> 
> Thanks.
> 
>> +
>> +$FSTRIM_PROG $SCRATCH_MNT
>> +
>> +_scratch_unmount
>> +
>> +# Verify seed device is all ok
>> +_mount $seed $SCRATCH_MNT 2>&1 | _filter_ro_mount | _filter_scratch
>> +md5sum $SCRATCH_MNT/foo | _filter_scratch
>> +_scratch_unmount
>> +
>> +_check_btrfs_filesystem $seed
>> +
>> +_scratch_dev_pool_put
>> +
>> +# success, all done
>> +status=0
>> +exit
>> diff --git a/tests/btrfs/236.out b/tests/btrfs/236.out
>> new file mode 100644
>> index 000000000000..01699b8fc291
>> --- /dev/null
>> +++ b/tests/btrfs/236.out
>> @@ -0,0 +1,5 @@
>> +QA output created by 236
>> +mount: device write-protected, mounting read-only
>> +096003817ad2638000a6836e55866697  SCRATCH_MNT/foo
>> +mount: device write-protected, mounting read-only
>> +096003817ad2638000a6836e55866697  SCRATCH_MNT/foo
>> diff --git a/tests/btrfs/group b/tests/btrfs/group
>> index 331dd432fac3..5032259244e0 100644
>> --- a/tests/btrfs/group
>> +++ b/tests/btrfs/group
>> @@ -238,3 +238,4 @@
>>   233 auto quick subvolume
>>   234 auto quick compress rw
>>   235 auto quick send
>> +236 auto quick seed trim
>> --
>> 2.27.0
>>
> 
> 

  reply	other threads:[~2021-05-03 10:29 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-30  9:10 [PATCH] btrfs: fix unmountable seed device after fstrim Anand Jain
2021-04-30 10:11 ` Filipe Manana
2021-04-30 11:06   ` Anand Jain
2021-04-30 11:59 ` Anand Jain
2021-04-30 12:14   ` Filipe Manana
2021-04-30 12:48     ` Anand Jain
2021-05-03 13:34       ` David Sterba
2021-04-30 14:39   ` [PATCH] btrfs: add fstrim test case on the sprout device Anand Jain
2021-04-30 15:24     ` Filipe Manana
2021-05-01  5:16       ` Anand Jain
2021-05-01  5:17     ` [PATCH v2] " Anand Jain
2021-05-03  9:54       ` Filipe Manana
2021-05-03 10:29         ` Anand Jain [this message]
2021-05-03 11:08     ` [PATCH v3] " Anand Jain
2021-05-03 11:16       ` Filipe Manana

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=8e6a5e5c-5cab-aea3-6be9-8223020084b8@oracle.com \
    --to=anand.jain@oracle.com \
    --cc=fdmanana@gmail.com \
    --cc=fdmanana@suse.com \
    --cc=fstests@vger.kernel.org \
    --cc=linux-btrfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.