@@ -4,11 +4,15 @@
#
# FS QA Test 163
#
-# Test case to verify that a seed device can be replaced
+# Test case to verify that a sprouted device can be replaced
# Create a seed device
# Create a sprout device
# Remount RW
-# Run device replace on the seed device
+# Run device replace on the sprout device
+#
+# Depends on the kernel patch
+# btrfs: fail replace of seed device
+
seq=`basename $0`
seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
@@ -39,6 +43,7 @@ _supported_fs btrfs
_supported_os Linux
_require_command "$BTRFS_TUNE_PROG" btrfstune
_require_scratch_dev_pool 3
+_require_btrfs_forget_or_module_loadable
_scratch_dev_pool_get 3
@@ -52,7 +57,7 @@ create_seed()
run_check _mount $dev_seed $SCRATCH_MNT
$XFS_IO_PROG -f -d -c "pwrite -S 0xab 0 4M" $SCRATCH_MNT/foobar >\
/dev/null
- echo -- gloden --
+ echo -- golden --
od -x $SCRATCH_MNT/foobar
_run_btrfs_util_prog filesystem show -m $SCRATCH_MNT
_scratch_unmount
@@ -64,22 +69,28 @@ add_sprout()
{
_run_btrfs_util_prog device add -f $dev_sprout $SCRATCH_MNT
_run_btrfs_util_prog filesystem show -m $SCRATCH_MNT
+ _mount -o remount,rw $dev_sprout $SCRATCH_MNT
+ $XFS_IO_PROG -f -d -c "pwrite -S 0xcd 0 4M" $SCRATCH_MNT/foobar2 >\
+ /dev/null
}
replace_seed()
{
- _run_btrfs_util_prog replace start -fB $dev_seed $dev_replace_tgt $SCRATCH_MNT
+ _run_btrfs_util_prog replace start -fB $dev_sprout $dev_replace_tgt $SCRATCH_MNT
_run_btrfs_util_prog filesystem show -m $SCRATCH_MNT
_scratch_unmount
- run_check _mount $dev_replace_tgt $SCRATCH_MNT
+ _btrfs_forget_or_module_reload
+ run_check _mount -o device=$dev_seed $dev_replace_tgt $SCRATCH_MNT
echo -- sprout --
od -x $SCRATCH_MNT/foobar
+ od -x $SCRATCH_MNT/foobar2
_scratch_unmount
}
seed_is_mountable()
{
+ _btrfs_forget_or_module_reload
run_check _mount $dev_seed $SCRATCH_MNT
_run_btrfs_util_prog filesystem show -m $SCRATCH_MNT
_scratch_unmount
@@ -1,5 +1,5 @@
QA output created by 163
+-- golden --
0000000 abab abab abab abab abab abab abab abab
*
20000000
@@ -7,3 +7,6 @@ QA output created by 163
0000000 abab abab abab abab abab abab abab abab
*
20000000
+0000000 cdcd cdcd cdcd cdcd cdcd cdcd cdcd cdcd
+*
+20000000
Make this test case inline with the kernel patch [1] changes [1] btrfs: fail replace of seed device So use the sprout device as the replace target instead of the seed device. As because the replace seed is not supported any more. Signed-off-by: Anand Jain <anand.jain@oracle.com> --- I will send this to fstests ML once RFC is cleared. tests/btrfs/163 | 21 ++++++++++++++++----- tests/btrfs/163.out | 5 ++++- 2 files changed, 20 insertions(+), 6 deletions(-)