_devmgt_remove ${DEVHTL} $ds
        dev_removed=1
 
-       $BTRFS_UTIL_PROG fi show $SCRATCH_DEV | grep "Some devices missing" >> $seqres.full || _fail \
+       $BTRFS_UTIL_PROG filesystem show $SCRATCH_DEV | grep "Some devices missing" >> $seqres.full || _fail \
                                                        "btrfs did not report device missing"
 
        # add a new disk to btrfs
 
        run_check $FSSTRESS_PROG -d $SCRATCH_MNT -w -p $procs -n 2000 \
                $FSSTRESS_AVOID
 
-       run_check $BTRFS_UTIL_PROG subvol snap $SCRATCH_MNT \
+       run_check $BTRFS_UTIL_PROG subvolume snapshot $SCRATCH_MNT \
                $SCRATCH_MNT/$snap_name
 
        run_check umount $SCRATCH_DEV >/dev/null 2>&1
 
        run_check _scratch_mount "-o noatime"
 
        run_check $FSSTRESS_PROG -d $SCRATCH_MNT -n $ops $FSSTRESS_AVOID -x \
-               "$BTRFS_UTIL_PROG subvol snap -r $SCRATCH_MNT $SCRATCH_MNT/base"
+               "$BTRFS_UTIL_PROG subvolume snapshot -r $SCRATCH_MNT $SCRATCH_MNT/base"
 
-       run_check $BTRFS_UTIL_PROG subvol snap -r $SCRATCH_MNT $SCRATCH_MNT/incr
+       run_check $BTRFS_UTIL_PROG subvolume snapshot -r $SCRATCH_MNT $SCRATCH_MNT/incr
 
        echo "# $BTRFS_UTIL_PROG send $SCRATCH_MNT/base > $tmp/base.snap" \
                >> $seqres.full
 
 
 _cleanup()
 {
-       $BTRFS_UTIL_PROG subvol del $TEST_DIR/$tmp_dir/send/snapshots/backup2 > /dev/null 2>&1
-       $BTRFS_UTIL_PROG subvol del $TEST_DIR/$tmp_dir/send/snapshots/backup3 > /dev/null 2>&1
-       $BTRFS_UTIL_PROG subvol del $TEST_DIR/$tmp_dir/send > /dev/null 2>&1
+       $BTRFS_UTIL_PROG subvolume delete $TEST_DIR/$tmp_dir/send/snapshots/backup2 > /dev/null 2>&1
+       $BTRFS_UTIL_PROG subvolume delete $TEST_DIR/$tmp_dir/send/snapshots/backup3 > /dev/null 2>&1
+       $BTRFS_UTIL_PROG subvolume delete $TEST_DIR/$tmp_dir/send > /dev/null 2>&1
        rm -rf $TEST_DIR/$tmp_dir
        rm -f $tmp.*
 }
 _scratch_mount
 
 mkdir $TEST_DIR/$tmp_dir
-$BTRFS_UTIL_PROG subvol create $TEST_DIR/$tmp_dir/send \
+$BTRFS_UTIL_PROG subvolume create $TEST_DIR/$tmp_dir/send \
        > $seqres.full 2>&1 || _fail "failed subvol create"
 work_dir="$TEST_DIR/$tmp_dir/send"
 mkdir $work_dir/testdir
 dd if=/dev/urandom  of=$work_dir/testdir/bb count=16 > /dev/null 2>&1
 
 mkdir $work_dir/snapshots
-$BTRFS_UTIL_PROG sub snap -r $work_dir $work_dir/snapshots/backup2 \
+$BTRFS_UTIL_PROG subvolume snapshot -r $work_dir $work_dir/snapshots/backup2 \
        >> $seqres.full 2>&1 || _fail "failed backup2"
-$BTRFS_UTIL_PROG sub snap -r $work_dir $work_dir/snapshots/backup3 \
+$BTRFS_UTIL_PROG subvolume snapshot -r $work_dir $work_dir/snapshots/backup3 \
        >> $seqres.full 2>&1 || _fail "failed backup3"
 $BTRFS_UTIL_PROG send $work_dir/snapshots/backup3/ -f $TEST_DIR/$tmp_dir/blah \
        >> $seqres.full 2>&1 || _fail "send failed"
 
 _scratch_mkfs > /dev/null 2>&1
 _scratch_mount
 
-$BTRFS_UTIL_PROG sub create $SCRATCH_MNT/newvol >> $seqres.full 2>&1 \
+$BTRFS_UTIL_PROG subvolume create $SCRATCH_MNT/newvol >> $seqres.full 2>&1 \
        || _fail "couldn't create subvol"
 subvolid=$(_btrfs_get_subvolid $SCRATCH_MNT newvol)
-$BTRFS_UTIL_PROG sub set-default $subvolid $SCRATCH_MNT >> $seqres.full 2>&1 \
+$BTRFS_UTIL_PROG subvolume set-default $subvolid $SCRATCH_MNT >> $seqres.full 2>&1 \
        || _fail "couldn't set default"
-$BTRFS_UTIL_PROG sub delete $SCRATCH_MNT/newvol >> $seqres.full 2>&1
+$BTRFS_UTIL_PROG subvolume delete $SCRATCH_MNT/newvol >> $seqres.full 2>&1
 _scratch_unmount
 _scratch_mount || _fail "mount should have succeeded"
 
 
 }
 $XFS_IO_PROG -f -c "falloc 0 1M" -c "pwrite 16k 8k" -c "fsync" \
        $SCRATCH_MNT/foo > $seqres.full 2>&1
-$BTRFS_UTIL_PROG fi ba $SCRATCH_MNT >> $seqres.full 2>&1 || \
+$BTRFS_UTIL_PROG filesystem balance $SCRATCH_MNT >> $seqres.full 2>&1 || \
        _fail "balance failed"
 _scratch_unmount
 _scratch_mount
 
 {
        for i in $(seq 20)
        do
-               btrfs sub snapshot $SCRATCH_MNT $SCRATCH_MNT/snapshot0 >/dev/null
-               btrfs sub delete $SCRATCH_MNT/snapshot0 >/dev/null
+               $BTRFS_UTIL_PROG subvolume snapshot $SCRATCH_MNT $SCRATCH_MNT/snapshot0 >/dev/null
+               $BTRFS_UTIL_PROG subvolume delete $SCRATCH_MNT/snapshot0 >/dev/null
        done
 }
 
 {
        for i in $(seq 20)
        do
-               btrfs balance start $SCRATCH_MNT >/dev/null
+               $BTRFS_UTIL_PROG balance start $SCRATCH_MNT >/dev/null
        done
 }
 
 
 _scratch_mount -o ro
 _scratch_mount -o rw,remount
 
-$BTRFS_UTIL_PROG sub snap $SCRATCH_MNT $SCRATCH_MNT/snap >> $seqres.full 2>&1 \
+$BTRFS_UTIL_PROG subvolume snapshot $SCRATCH_MNT $SCRATCH_MNT/snap >> $seqres.full 2>&1 \
        || _fail "couldn't create snapshot"
 
 echo "Silence is golden"
 
 
 _cleanup()
 {
-       $BTRFS_UTIL_PROG subvol del $TEST_DIR/$tmp_dir/snap > /dev/null 2>&1
-       $BTRFS_UTIL_PROG subvol del $TEST_DIR/$tmp_dir/snap1 > /dev/null 2>&1
-       $BTRFS_UTIL_PROG subvol del $TEST_DIR/$tmp_dir/send > /dev/null 2>&1
+       $BTRFS_UTIL_PROG subvolume delete $TEST_DIR/$tmp_dir/snap > /dev/null 2>&1
+       $BTRFS_UTIL_PROG subvolume delete $TEST_DIR/$tmp_dir/snap1 > /dev/null 2>&1
+       $BTRFS_UTIL_PROG subvolume delete $TEST_DIR/$tmp_dir/send > /dev/null 2>&1
        rm -rf $TEST_DIR/$tmp_dir
        rm -f $tmp.*
 }
 _scratch_mount
 
 mkdir $TEST_DIR/$tmp_dir
-$BTRFS_UTIL_PROG subvol create $TEST_DIR/$tmp_dir/send \
-       > $seqres.full 2>&1 || _fail "failed subvol create"
+$BTRFS_UTIL_PROG subvolume create $TEST_DIR/$tmp_dir/send \
+       > $seqres.full 2>&1 || _fail "failed subvolume create"
 
 dd if=/dev/urandom of=$TEST_DIR/$tmp_dir/send/foo bs=1M count=10 >> $seqres.full \
        2>&1 || _fail "dd failed"
-$BTRFS_UTIL_PROG subvol snap -r $TEST_DIR/$tmp_dir/send \
+$BTRFS_UTIL_PROG subvolume snapshot -r $TEST_DIR/$tmp_dir/send \
        $TEST_DIR/$tmp_dir/snap >> $seqres.full 2>&1 || _fail "failed snap"
 $XFS_IO_PROG -c "fpunch 1m 1m" $TEST_DIR/$tmp_dir/send/foo
-$BTRFS_UTIL_PROG subvol snap -r $TEST_DIR/$tmp_dir/send \
+$BTRFS_UTIL_PROG subvolume snapshot -r $TEST_DIR/$tmp_dir/send \
        $TEST_DIR/$tmp_dir/snap1 >> $seqres.full 2>&1 || _fail "failed snap"
 
 $FSSUM_PROG -A -f -w $tmp/fssum.snap $TEST_DIR/$tmp_dir/snap >> $seqres.full \
 
 _scratch_mount -o ro
 _scratch_mount -o rw,remount
 
-$BTRFS_UTIL_PROG sub snap $SCRATCH_MNT $SCRATCH_MNT/snap >> $seqres.full 2>&1 \
+$BTRFS_UTIL_PROG subvolume snapshot $SCRATCH_MNT $SCRATCH_MNT/snap >> $seqres.full 2>&1 \
        || _fail "couldn't create snapshot"
 
 echo "Silence is golden"
 
 
 _cleanup()
 {
-       $BTRFS_UTIL_PROG subvol del $TEST_DIR/$tmp_dir/snap1 > /dev/null 2>&1
-       $BTRFS_UTIL_PROG subvol del $TEST_DIR/$tmp_dir/snap2 > /dev/null 2>&1
-       $BTRFS_UTIL_PROG subvol del $TEST_DIR/$tmp_dir/send > /dev/null 2>&1
+       $BTRFS_UTIL_PROG subvolume delete $TEST_DIR/$tmp_dir/snap1 > /dev/null 2>&1
+       $BTRFS_UTIL_PROG subvolume delete $TEST_DIR/$tmp_dir/snap2 > /dev/null 2>&1
+       $BTRFS_UTIL_PROG subvolume delete $TEST_DIR/$tmp_dir/send > /dev/null 2>&1
        rm -rf $TEST_DIR/$tmp_dir
        rm -f $tmp.*
 }
 _scratch_mount
 
 mkdir $TEST_DIR/$tmp_dir
-$BTRFS_UTIL_PROG subvol create $TEST_DIR/$tmp_dir/send \
-       > $seqres.full 2>&1 || _fail "failed subvol create"
+$BTRFS_UTIL_PROG subvolume create $TEST_DIR/$tmp_dir/send \
+       > $seqres.full 2>&1 || _fail "failed subvolume create"
 
 SEND_TEST_DIR=$TEST_DIR/$tmp_dir/send
 
 mkdir $SEND_TEST_DIR/test/foo
 touch $SEND_TEST_DIR/test/foo/bar
 
-$BTRFS_UTIL_PROG subvol snap -r $TEST_DIR/$tmp_dir/send \
+$BTRFS_UTIL_PROG subvolume snapshot -r $TEST_DIR/$tmp_dir/send \
        $TEST_DIR/$tmp_dir/snap1 >> $seqres.full 2>&1 || _fail "failed snap1"
 
 $BTRFS_UTIL_PROG send -f $TEST_DIR/$tmp_dir/send1.dump \
 touch $SEND_TEST_DIR/test/foo/bar
 touch $SEND_TEST_DIR/test/blah
 
-$BTRFS_UTIL_PROG subvol snap -r $TEST_DIR/$tmp_dir/send \
+$BTRFS_UTIL_PROG subvolume snapshot -r $TEST_DIR/$tmp_dir/send \
        $TEST_DIR/$tmp_dir/snap2 >> $seqres.full 2>&1 || _fail "failed snap2"
 
 $BTRFS_UTIL_PROG send -f $TEST_DIR/$tmp_dir/send2.dump \
 
 _rescan_test()
 {
        # first with a blank subvol
-       run_check $BTRFS_UTIL_PROG subvol create $SCRATCH_MNT/a
+       run_check $BTRFS_UTIL_PROG subvolume create $SCRATCH_MNT/a
        run_check $BTRFS_UTIL_PROG quota enable $SCRATCH_MNT/a
        subvolid=$(_btrfs_get_subvolid $SCRATCH_MNT a)
        run_check $FSSTRESS_PROG -d $SCRATCH_MNT/a -w -p 1 -n 2000 \
 #basic exceed limit testing
 _limit_test_exceed()
 {
-       run_check $BTRFS_UTIL_PROG subvol create $SCRATCH_MNT/a
+       run_check $BTRFS_UTIL_PROG subvolume create $SCRATCH_MNT/a
        run_check $BTRFS_UTIL_PROG quota enable $SCRATCH_MNT
        subvolid=$(_btrfs_get_subvolid $SCRATCH_MNT a)
        run_check $BTRFS_UTIL_PROG qgroup limit 5M 0/$subvolid $SCRATCH_MNT
 #basic noexceed limit testing
 _limit_test_noexceed()
 {
-       run_check $BTRFS_UTIL_PROG subvol create $SCRATCH_MNT/a
+       run_check $BTRFS_UTIL_PROG subvolume create $SCRATCH_MNT/a
        run_check $BTRFS_UTIL_PROG quota enable $SCRATCH_MNT
        subvolid=$(_btrfs_get_subvolid $SCRATCH_MNT a)
        run_check $BTRFS_UTIL_PROG qgroup limit 5M 0/$subvolid $SCRATCH_MNT
 
 #! /bin/bash
-# FS QA Test No. btrfs/008
+# FS QA Test No. btrfs/024
 #
 # btrfs wrong compression type regression test. This test is used to check
 # the oops will happen when the users write some data into the files whose
 
 $XFS_IO_PROG -f -c "pwrite 1482752 2978" $SCRATCH_MNT/foo | _filter_xfs_io
 $BTRFS_UTIL_PROG filesystem sync $SCRATCH_MNT | _filter_scratch
 
-$BTRFS_UTIL_PROG subvol snapshot -r $SCRATCH_MNT $SCRATCH_MNT/mysnap1 | \
+$BTRFS_UTIL_PROG subvolume snapshot -r $SCRATCH_MNT $SCRATCH_MNT/mysnap1 | \
     _filter_scratch
 
 $XFS_IO_PROG -f -c "truncate 883305" $SCRATCH_MNT/foo | _filter_xfs_io
 $BTRFS_UTIL_PROG filesystem sync $SCRATCH_MNT | _filter_scratch
 
-$BTRFS_UTIL_PROG subvol snapshot -r $SCRATCH_MNT $SCRATCH_MNT/mysnap2 | \
+$BTRFS_UTIL_PROG subvolume snapshot -r $SCRATCH_MNT $SCRATCH_MNT/mysnap2 | \
     _filter_scratch
 
 $BTRFS_UTIL_PROG send $SCRATCH_MNT/mysnap1 -f $tmp/1.snap 2>&1 | _filter_scratch