--- /dev/null
+#! /bin/bash
+# FS QA Test No. 455
+#
+# Run fsx with log writes to verify power fail safeness.
+#
+#-----------------------------------------------------------------------
+# Copyright (c) 2015 Facebook. 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`
+status=1 # failure is the default!
+
+_cleanup()
+{
+ _log_writes_cleanup
+}
+trap "_cleanup; exit \$status" 0 1 2 3 15
+
+# get standard environment, filters and checks
+. ./common/rc
+. ./common/filter
+. ./common/dmlogwrites
+
+# real QA test starts here
+_supported_fs generic
+_supported_os Linux
+_require_test
+_require_scratch_nocheck
+_require_log_writes
+
+rm -f $seqres.full
+
+check_files()
+{
+ local name=$1
+
+ # Now look for our files
+ for i in $(find $SANITY_DIR -type f | grep $name | grep mark); do
+ local filename=$(basename $i)
+ local mark="${filename##*.}"
+ echo "checking $filename" >> $seqres.full
+ _log_writes_replay_log $filename
+ _scratch_mount
+ local expected_md5=$(_md5_checksum $i)
+ local md5=$(_md5_checksum $SCRATCH_MNT/$name)
+ [ "${md5}" != "${expected_md5}" ] && _fail "$filename md5sum mismatched"
+ _scratch_unmount
+ _check_scratch_fs
+ done
+}
+
+SANITY_DIR=$TEST_DIR/fsxtests
+rm -rf $SANITY_DIR
+mkdir $SANITY_DIR
+
+# Create the log
+_log_writes_init
+
+_log_writes_mkfs >> $seqres.full 2>&1
+
+# Log writes emulates discard support, turn it on for maximum crying.
+_log_writes_mount -o discard
+
+NUM_FILES=4
+NUM_OPS=200
+FSX_OPTS="-N $NUM_OPS -d -P $SANITY_DIR -i $LOGWRITES_DMDEV"
+# Set random seeds for fsx runs (0 for timestamp + pid)
+# When test failure is detected, check the seed values printed
+# by fsx processes to $seqres.full and set them in this array
+# to repeat the same fsx runs
+seeds=(0 0 0 0)
+# Run fsx for a while
+for j in `seq 0 $((NUM_FILES-1))`; do
+ run_check $here/ltp/fsx $FSX_OPTS -S ${seeds[$j]} -j $j $SCRATCH_MNT/testfile$j &
+done
+wait
+
+test_md5=()
+for j in `seq 0 $((NUM_FILES-1))`; do
+ test_md5[$j]=$(_md5_checksum $SCRATCH_MNT/testfile$j)
+done
+
+# Unmount the scratch dir and tear down the log writes target
+_log_writes_mark last
+_log_writes_unmount
+_log_writes_mark end
+_log_writes_remove
+_check_scratch_fs
+
+# check pre umount
+echo "checking pre umount" >> $seqres.full
+_log_writes_replay_log last
+_scratch_mount
+_scratch_unmount
+_check_scratch_fs
+
+for j in `seq 0 $((NUM_FILES-1))`; do
+ check_files testfile$j
+done
+
+# Check the end
+echo "checking post umount" >> $seqres.full
+_log_writes_replay_log end
+_scratch_mount
+for j in `seq 0 $((NUM_FILES-1))`; do
+ md5=$(_md5_checksum $SCRATCH_MNT/testfile$j)
+ [ "${md5}" != "${test_md5[$j]}" ] && _fail "testfile$j end md5sum mismatched"
+done
+_scratch_unmount
+_check_scratch_fs
+
+echo "Silence is golden"
+status=0
+exit
--- /dev/null
+QA output created by 455
+Silence is golden
--- /dev/null
+#! /bin/bash
+# FS QA Test No. 456
+#
+# This test is motivated by a bug found in ext4 during random crash
+# consistency tests.
+#
+#-----------------------------------------------------------------------
+# Copyright (C) 2017 CTERA Networks. All Rights Reserved.
+# Author: Amir Goldstein <amir73il@gmail.com>
+#
+# 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!
+
+_cleanup()
+{
+ _cleanup_flakey
+ cd /
+ rm -f $tmp.*
+}
+trap "_cleanup; exit \$status" 0 1 2 3 15
+
+# get standard environment, filters and checks
+. ./common/rc
+. ./common/filter
+. ./common/dmflakey
+
+# real QA test starts here
+_supported_fs generic
+_supported_os Linux
+_require_scratch
+_require_dm_target flakey
+
+rm -f $seqres.full
+
+_scratch_mkfs >> $seqres.full 2>&1
+_require_metadata_journaling $SCRATCH_DEV
+
+_init_flakey
+_mount_flakey
+
+fsxops=$tmp.fsxops
+cat <<EOF > $fsxops
+write 0x137dd 0xdc69 0x0
+fallocate 0xb531 0xb5ad 0x21446
+collapse_range 0x1c000 0x4000 0x21446
+write 0x3e5ec 0x1a14 0x21446
+zero_range 0x20fac 0x6d9c 0x40000 keep_size
+mapwrite 0x216ad 0x274f 0x40000
+EOF
+run_check $here/ltp/fsx -d --replay-ops $fsxops $SCRATCH_MNT/testfile
+
+_flakey_drop_and_remount
+_unmount_flakey
+_cleanup_flakey
+_check_scratch_fs
+
+echo "Silence is golden"
+
+status=0
+exit
--- /dev/null
+QA output created by 456
+Silence is golden
--- /dev/null
+#! /bin/bash
+# FS QA Test No. 457
+#
+# Run fsx with log writes on cloned files to verify power fail safeness.
+#
+#-----------------------------------------------------------------------
+# Copyright (C) 2017 CTERA Networks. All Rights Reserved.
+# Author: Amir Goldstein <amir73il@gmail.com>
+#
+# 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`
+status=1 # failure is the default!
+
+_cleanup()
+{
+ _log_writes_cleanup
+}
+trap "_cleanup; exit \$status" 0 1 2 3 15
+
+# get standard environment, filters and checks
+. ./common/rc
+. ./common/filter
+. ./common/reflink
+. ./common/dmlogwrites
+
+# real QA test starts here
+_supported_fs generic
+_supported_os Linux
+_require_test
+_require_scratch_reflink
+_require_cp_reflink
+_require_log_writes
+
+rm -f $seqres.full
+
+check_files()
+{
+ local name=$1
+
+ # Now look for our files
+ for i in $(find $SANITY_DIR -type f | grep $name | grep mark); do
+ local filename=$(basename $i)
+ local mark="${filename##*.}"
+ echo "checking $filename" >> $seqres.full
+ _log_writes_replay_log $filename
+ _scratch_mount
+ local expected_md5=$(_md5_checksum $i)
+ local md5=$(_md5_checksum $SCRATCH_MNT/$name)
+ [ "${md5}" != "${expected_md5}" ] && _fail "$filename md5sum mismatched"
+ _scratch_unmount
+ _check_scratch_fs
+ done
+}
+
+SANITY_DIR=$TEST_DIR/fsxtests
+rm -rf $SANITY_DIR
+mkdir $SANITY_DIR
+
+# Create the log
+_log_writes_init
+
+_log_writes_mkfs >> $seqres.full 2>&1
+
+# Log writes emulates discard support, turn it on for maximum crying.
+_log_writes_mount -o discard
+
+# write testfile index -1 to be cloned to testfile0
+$XFS_IO_PROG -f -c "pwrite -S 0xff 0 256k" -c "fsync" \
+ $SCRATCH_MNT/testfile-1 > /dev/null 2>&1
+
+NUM_FILES=10
+NUM_OPS=10
+FSX_OPTS="-N $NUM_OPS -d -k -P $SANITY_DIR -i $LOGWRITES_DMDEV"
+# Run fsx for a while
+# Set random seeds for fsx runs (0 for timestamp + pid)
+for j in `seq 0 $((NUM_FILES-1))`; do
+ # clone the clone from prev iteration which may have already mutated
+ _cp_reflink $SCRATCH_MNT/testfile$((j-1)) $SCRATCH_MNT/testfile$j
+ run_check $here/ltp/fsx $FSX_OPTS -S 0 -j $j $SCRATCH_MNT/testfile$j &
+done
+wait
+
+test_md5=()
+for j in `seq 0 $((NUM_FILES-1))`; do
+ test_md5[$j]=$(_md5_checksum $SCRATCH_MNT/testfile$j)
+done
+
+# Unmount the scratch dir and tear down the log writes target
+_log_writes_mark last
+_log_writes_unmount
+_log_writes_mark end
+_log_writes_remove
+_check_scratch_fs
+
+# check pre umount
+echo "checking pre umount" >> $seqres.full
+_log_writes_replay_log last
+_scratch_mount
+_scratch_unmount
+_check_scratch_fs
+
+for j in `seq 0 $((NUM_FILES-1))`; do
+ check_files testfile$j
+done
+
+# Check the end
+echo "checking post umount" >> $seqres.full
+_log_writes_replay_log end
+_scratch_mount
+for j in `seq 0 $((NUM_FILES-1))`; do
+ md5=$(_md5_checksum $SCRATCH_MNT/testfile$j)
+ [ "${md5}" != "${test_md5[$j]}" ] && _fail "testfile$j end md5sum mismatched"
+done
+
+echo "Silence is golden"
+status=0
+exit
--- /dev/null
+QA output created by 457
+Silence is golden
--- /dev/null
+#! /bin/bash
+# FS QA Test No. 458
+#
+# Regression test for xfs leftover CoW extents after truncate
+# and umount
+#
+#-----------------------------------------------------------------------
+# Copyright (C) 2017 CTERA Networks. All Rights Reserved.
+# Author: Amir Goldstein <amir73il@gmail.com>
+#
+# 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!
+
+_cleanup()
+{
+ cd /
+ rm -f $tmp.*
+}
+trap "_cleanup; exit \$status" 0 1 2 3 15
+
+# get standard environment, filters and checks
+. ./common/rc
+. ./common/filter
+. ./common/reflink
+
+# real QA test starts here
+_supported_fs generic
+_supported_os Linux
+_require_scratch_reflink
+_require_cp_reflink
+_require_xfs_io_command "fzero"
+_require_xfs_io_command "fcollapse"
+_require_xfs_io_command "finsert"
+_require_xfs_io_command "truncate"
+
+rm -f $seqres.full
+
+_scratch_mkfs >/dev/null 2>&1
+_scratch_mount
+
+$XFS_IO_PROG -f -c "pwrite 0 0x40000" \
+ $SCRATCH_MNT/foo > /dev/null 2>&1
+
+_cp_reflink $SCRATCH_MNT/foo $SCRATCH_MNT/bar
+
+$XFS_IO_PROG -f -c "fzero -k 0x169f 0x387c" \
+ -c "fcollapse 0x29000 0xd000" \
+ -c "finsert 0 0x8000" \
+ -c "truncate 0x8000" \
+ $SCRATCH_MNT/foo > /dev/null 2>&1
+
+echo "Silence is golden"
+status=0
+exit
--- /dev/null
+QA output created by 458
+Silence is golden
+++ /dev/null
-#! /bin/bash
-# FS QA Test No. 500
-#
-# Run fsx with log writes to verify power fail safeness.
-#
-#-----------------------------------------------------------------------
-# Copyright (c) 2015 Facebook. 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`
-status=1 # failure is the default!
-
-_cleanup()
-{
- _log_writes_cleanup
-}
-trap "_cleanup; exit \$status" 0 1 2 3 15
-
-# get standard environment, filters and checks
-. ./common/rc
-. ./common/filter
-. ./common/dmlogwrites
-
-# real QA test starts here
-_supported_fs generic
-_supported_os Linux
-_require_test
-_require_scratch_nocheck
-_require_log_writes
-
-rm -f $seqres.full
-
-check_files()
-{
- local name=$1
-
- # Now look for our files
- for i in $(find $SANITY_DIR -type f | grep $name | grep mark); do
- local filename=$(basename $i)
- local mark="${filename##*.}"
- echo "checking $filename" >> $seqres.full
- _log_writes_replay_log $filename
- _scratch_mount
- local expected_md5=$(_md5_checksum $i)
- local md5=$(_md5_checksum $SCRATCH_MNT/$name)
- [ "${md5}" != "${expected_md5}" ] && _fail "$filename md5sum mismatched"
- _scratch_unmount
- _check_scratch_fs
- done
-}
-
-SANITY_DIR=$TEST_DIR/fsxtests
-rm -rf $SANITY_DIR
-mkdir $SANITY_DIR
-
-# Create the log
-_log_writes_init
-
-_log_writes_mkfs >> $seqres.full 2>&1
-
-# Log writes emulates discard support, turn it on for maximum crying.
-_log_writes_mount -o discard
-
-NUM_FILES=4
-NUM_OPS=200
-FSX_OPTS="-N $NUM_OPS -d -P $SANITY_DIR -i $LOGWRITES_DMDEV"
-# Set random seeds for fsx runs (0 for timestamp + pid)
-# When test failure is detected, check the seed values printed
-# by fsx processes to $seqres.full and set them in this array
-# to repeat the same fsx runs
-seeds=(0 0 0 0)
-# Run fsx for a while
-for j in `seq 0 $((NUM_FILES-1))`; do
- run_check $here/ltp/fsx $FSX_OPTS -S ${seeds[$j]} -j $j $SCRATCH_MNT/testfile$j &
-done
-wait
-
-test_md5=()
-for j in `seq 0 $((NUM_FILES-1))`; do
- test_md5[$j]=$(_md5_checksum $SCRATCH_MNT/testfile$j)
-done
-
-# Unmount the scratch dir and tear down the log writes target
-_log_writes_mark last
-_log_writes_unmount
-_log_writes_mark end
-_log_writes_remove
-_check_scratch_fs
-
-# check pre umount
-echo "checking pre umount" >> $seqres.full
-_log_writes_replay_log last
-_scratch_mount
-_scratch_unmount
-_check_scratch_fs
-
-for j in `seq 0 $((NUM_FILES-1))`; do
- check_files testfile$j
-done
-
-# Check the end
-echo "checking post umount" >> $seqres.full
-_log_writes_replay_log end
-_scratch_mount
-for j in `seq 0 $((NUM_FILES-1))`; do
- md5=$(_md5_checksum $SCRATCH_MNT/testfile$j)
- [ "${md5}" != "${test_md5[$j]}" ] && _fail "testfile$j end md5sum mismatched"
-done
-_scratch_unmount
-_check_scratch_fs
-
-echo "Silence is golden"
-status=0
-exit
+++ /dev/null
-QA output created by 500
-Silence is golden
+++ /dev/null
-#! /bin/bash
-# FS QA Test No. 501
-#
-# This test is motivated by a bug found in ext4 during random crash
-# consistency tests.
-#
-#-----------------------------------------------------------------------
-# Copyright (C) 2017 CTERA Networks. All Rights Reserved.
-# Author: Amir Goldstein <amir73il@gmail.com>
-#
-# 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!
-
-_cleanup()
-{
- _cleanup_flakey
- cd /
- rm -f $tmp.*
-}
-trap "_cleanup; exit \$status" 0 1 2 3 15
-
-# get standard environment, filters and checks
-. ./common/rc
-. ./common/filter
-. ./common/dmflakey
-
-# real QA test starts here
-_supported_fs generic
-_supported_os Linux
-_require_scratch
-_require_dm_target flakey
-
-rm -f $seqres.full
-
-_scratch_mkfs >> $seqres.full 2>&1
-_require_metadata_journaling $SCRATCH_DEV
-
-_init_flakey
-_mount_flakey
-
-fsxops=$tmp.fsxops
-cat <<EOF > $fsxops
-write 0x137dd 0xdc69 0x0
-fallocate 0xb531 0xb5ad 0x21446
-collapse_range 0x1c000 0x4000 0x21446
-write 0x3e5ec 0x1a14 0x21446
-zero_range 0x20fac 0x6d9c 0x40000 keep_size
-mapwrite 0x216ad 0x274f 0x40000
-EOF
-run_check $here/ltp/fsx -d --replay-ops $fsxops $SCRATCH_MNT/testfile
-
-_flakey_drop_and_remount
-_unmount_flakey
-_cleanup_flakey
-_check_scratch_fs
-
-echo "Silence is golden"
-
-status=0
-exit
+++ /dev/null
-QA output created by 501
-Silence is golden
+++ /dev/null
-#! /bin/bash
-# FS QA Test No. 502
-#
-# Run fsx with log writes on cloned files to verify power fail safeness.
-#
-#-----------------------------------------------------------------------
-# Copyright (C) 2017 CTERA Networks. All Rights Reserved.
-# Author: Amir Goldstein <amir73il@gmail.com>
-#
-# 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`
-status=1 # failure is the default!
-
-_cleanup()
-{
- _log_writes_cleanup
-}
-trap "_cleanup; exit \$status" 0 1 2 3 15
-
-# get standard environment, filters and checks
-. ./common/rc
-. ./common/filter
-. ./common/reflink
-. ./common/dmlogwrites
-
-# real QA test starts here
-_supported_fs generic
-_supported_os Linux
-_require_test
-_require_scratch_reflink
-_require_cp_reflink
-_require_log_writes
-
-rm -f $seqres.full
-
-check_files()
-{
- local name=$1
-
- # Now look for our files
- for i in $(find $SANITY_DIR -type f | grep $name | grep mark); do
- local filename=$(basename $i)
- local mark="${filename##*.}"
- echo "checking $filename" >> $seqres.full
- _log_writes_replay_log $filename
- _scratch_mount
- local expected_md5=$(_md5_checksum $i)
- local md5=$(_md5_checksum $SCRATCH_MNT/$name)
- [ "${md5}" != "${expected_md5}" ] && _fail "$filename md5sum mismatched"
- _scratch_unmount
- _check_scratch_fs
- done
-}
-
-SANITY_DIR=$TEST_DIR/fsxtests
-rm -rf $SANITY_DIR
-mkdir $SANITY_DIR
-
-# Create the log
-_log_writes_init
-
-_log_writes_mkfs >> $seqres.full 2>&1
-
-# Log writes emulates discard support, turn it on for maximum crying.
-_log_writes_mount -o discard
-
-# write testfile index -1 to be cloned to testfile0
-$XFS_IO_PROG -f -c "pwrite -S 0xff 0 256k" -c "fsync" \
- $SCRATCH_MNT/testfile-1 > /dev/null 2>&1
-
-NUM_FILES=10
-NUM_OPS=10
-FSX_OPTS="-N $NUM_OPS -d -k -P $SANITY_DIR -i $LOGWRITES_DMDEV"
-# Run fsx for a while
-# Set random seeds for fsx runs (0 for timestamp + pid)
-for j in `seq 0 $((NUM_FILES-1))`; do
- # clone the clone from prev iteration which may have already mutated
- _cp_reflink $SCRATCH_MNT/testfile$((j-1)) $SCRATCH_MNT/testfile$j
- run_check $here/ltp/fsx $FSX_OPTS -S 0 -j $j $SCRATCH_MNT/testfile$j &
-done
-wait
-
-test_md5=()
-for j in `seq 0 $((NUM_FILES-1))`; do
- test_md5[$j]=$(_md5_checksum $SCRATCH_MNT/testfile$j)
-done
-
-# Unmount the scratch dir and tear down the log writes target
-_log_writes_mark last
-_log_writes_unmount
-_log_writes_mark end
-_log_writes_remove
-_check_scratch_fs
-
-# check pre umount
-echo "checking pre umount" >> $seqres.full
-_log_writes_replay_log last
-_scratch_mount
-_scratch_unmount
-_check_scratch_fs
-
-for j in `seq 0 $((NUM_FILES-1))`; do
- check_files testfile$j
-done
-
-# Check the end
-echo "checking post umount" >> $seqres.full
-_log_writes_replay_log end
-_scratch_mount
-for j in `seq 0 $((NUM_FILES-1))`; do
- md5=$(_md5_checksum $SCRATCH_MNT/testfile$j)
- [ "${md5}" != "${test_md5[$j]}" ] && _fail "testfile$j end md5sum mismatched"
-done
-
-echo "Silence is golden"
-status=0
-exit
+++ /dev/null
-QA output created by 502
-Silence is golden
+++ /dev/null
-#! /bin/bash
-# FS QA Test No. 503
-#
-# Regression test for xfs leftover CoW extents after truncate
-# and umount
-#
-#-----------------------------------------------------------------------
-# Copyright (C) 2017 CTERA Networks. All Rights Reserved.
-# Author: Amir Goldstein <amir73il@gmail.com>
-#
-# 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!
-
-_cleanup()
-{
- cd /
- rm -f $tmp.*
-}
-trap "_cleanup; exit \$status" 0 1 2 3 15
-
-# get standard environment, filters and checks
-. ./common/rc
-. ./common/filter
-. ./common/reflink
-
-# real QA test starts here
-_supported_fs generic
-_supported_os Linux
-_require_scratch_reflink
-_require_cp_reflink
-_require_xfs_io_command "fzero"
-_require_xfs_io_command "fcollapse"
-_require_xfs_io_command "finsert"
-_require_xfs_io_command "truncate"
-
-rm -f $seqres.full
-
-_scratch_mkfs >/dev/null 2>&1
-_scratch_mount
-
-$XFS_IO_PROG -f -c "pwrite 0 0x40000" \
- $SCRATCH_MNT/foo > /dev/null 2>&1
-
-_cp_reflink $SCRATCH_MNT/foo $SCRATCH_MNT/bar
-
-$XFS_IO_PROG -f -c "fzero -k 0x169f 0x387c" \
- -c "fcollapse 0x29000 0xd000" \
- -c "finsert 0 0x8000" \
- -c "truncate 0x8000" \
- $SCRATCH_MNT/foo > /dev/null 2>&1
-
-echo "Silence is golden"
-status=0
-exit
+++ /dev/null
-QA output created by 503
-Silence is golden
452 auto quick
453 auto quick dir
454 auto quick attr
-500 auto log replay
-501 auto quick metadata
-502 auto log replay clone
-503 auto quick clone
+455 auto log replay
+456 auto quick metadata
+457 auto log replay clone
+458 auto quick clone