xfs: test fixes for new 5.17 behaviors
[xfstests-dev.git] / tests / xfs / 308
index 3d346ec6ff2cb9f95bfb51784456c370f40437f2..d0f47f5038e428a1af743bfb6fc9489e675de38e 100755 (executable)
@@ -1,59 +1,29 @@
 #! /bin/bash
+# SPDX-License-Identifier: GPL-2.0
+# Copyright (c) 2016, Oracle and/or its affiliates.  All Rights Reserved.
+#
 # FS QA Test No. 308
 #
 # Test recovery of "lost" CoW blocks:
 # - Use the debugger to fake a leftover CoW extent
 # - See if mount/umount fixes it
 #
-#-----------------------------------------------------------------------
-# Copyright (c) 2016, Oracle and/or its affiliates.  All Rights Reserved.
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation.
-#
-# This program is distributed in the hope that it would be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write the Free Software Foundation,
-# Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
-#-----------------------------------------------------------------------
-
-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 -rf $tmp.*
-}
+. ./common/preamble
+_begin_fstest auto quick clone
 
-# get standard environment, filters and checks
-. ./common/rc
+# Import common functions.
 . ./common/filter
 . ./common/reflink
 
 # real QA test starts here
-_supported_os Linux
 _supported_fs xfs
 _require_scratch_reflink
 
-rm -f $seqres.full
-
 echo "Format"
 _scratch_mkfs > $seqres.full 2>&1
 _scratch_mount >> $seqres.full
 is_rmap=$($XFS_INFO_PROG $SCRATCH_MNT | grep -c "rmapbt=1")
-_scratch_unmount
+_scratch_xfs_unmount_dirty
 
 _get_agf_data() {
        field="$1"
@@ -129,8 +99,8 @@ debris_bno=$((bno + len - debris_len))
 echo "Remove the extent from the freesp btrees"
 _set_agf_data "recs[1].blockcount" $((len - debris_len)) -c 'addr bnoroot'
 _set_agf_data "recs[1].blockcount" $((len - debris_len)) -c 'addr cntroot'
-_set_agf_data freeblks $((agf_freeblks - debris_len))
 _set_agf_data longest $((len - debris_len))
+_set_agf_data freeblks $((agf_freeblks - debris_len))
 _set_sb_data fdblocks $((sb_fdblocks - debris_len))
 
 echo "Add the extent to the refcount btree"
@@ -151,9 +121,6 @@ fi
 
 _dump_status "broken fs config" >> $seqres.full
 
-echo "Look for leftover warning in xfs_check"
-_scratch_xfs_check | _filter_leftover
-
 echo "Look for leftover warning in xfs_repair"
 _scratch_xfs_repair -n 2>&1 | _filter_leftover