+++ /dev/null
-#! /bin/bash
-# BTRFS QA Test No. 010
-#
-# Test if snapshot-aware defrag can work well on partial extents, ie.
-# extent_offset is not zero.
-#
-#-----------------------------------------------------------------------
-# Copyright (c) 2013 Oracle. 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 -f $tmp.*
-}
-
-# get standard environment, filters and checks
-. ./common/rc
-. ./common/filter
-. ./common/defrag
-
-# real QA test starts here
-
-# Modify as appropriate.
-_supported_fs btrfs
-_supported_os Linux
-_require_scratch
-
-rm -f $seqres.full
-
-_scratch_mkfs > /dev/null 2>&1
-_scratch_mount
-
-subvol=$SCRATCH_MNT/subvol
-
-$BTRFS_UTIL_PROG subvolume create $subvol >> $seqres.full
-
-for i in `seq 5 -1 1`
-do
- dd if=/dev/zero of=$subvol/foobar bs=6k count=1 seek=$i conv=notrunc oflag=dsync 2>> $seqres.full
-done
-
-sync
-for i in `seq 2 -1 1`
-do
- $BTRFS_UTIL_PROG subvolume snapshot $subvol $SCRATCH_MNT/snap-$i >> $seqres.full
-done
-
-$BTRFS_UTIL_PROG filesystem defrag $subvol/foobar && sync
-
-num_extent_orig=`_extent_count $subvol/foobar`
-num_extent_snap1=`_extent_count $SCRATCH_MNT/snap-1/foobar`
-num_extent_snap2=`_extent_count $SCRATCH_MNT/snap-2/foobar`
-
-echo "$num_extent_orig $num_extent_snap1 $num_extent_snap2" >> $seqres.full
-
-# if error
-if [ "x$num_extent_snap1" != "x$num_extent_orig" -o "x$num_extent_snap2" != "x$num_extent_orig" ]; then
- echo "number of extents mis-match!"
- exit
-fi
-
-# optional stuff if your test has verbose output to help resolve problems
-#echo
-#echo "If failure, check $seqres.full (this) and $seqres.full.ok (reference)"
-
-# success, all done
-echo "done"
-status=0
-exit