--- /dev/null
+#! /bin/bash
+# FS QA Test No. btrfs/008
+#
+# btrfs send ENOENT regression test, from a user report on linux-btrfs
+#
+#-----------------------------------------------------------------------
+# Copyright (c) 2013 Fusion IO. 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/$$
+tmp_dir=send_temp_$seq
+
+status=1 # failure is the default!
+
+_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
+ rm -rf $TEST_DIR/$tmp_dir
+ rm -f $tmp.*
+}
+
+trap "_cleanup ; exit \$status" 0 1 2 3 15
+
+# get standard environment, filters and checks
+. ./common/rc
+. ./common/filter
+
+# real QA test starts here
+_supported_fs btrfs
+_supported_os Linux
+_require_scratch
+
+_scratch_mkfs > /dev/null 2>&1
+
+#receive needs to be able to setxattrs, including the selinux context, if we use
+#the normal nfs context thing it screws up our ability to set the
+#security.selinux xattrs so we need to disable this for this test
+export SELINUX_MOUNT_OPTIONS=""
+
+_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"
+work_dir="$TEST_DIR/$tmp_dir/send"
+mkdir $work_dir/testdir
+mkdir $work_dir/testdir/1/
+mkdir $work_dir/testdir/2/
+dd if=/dev/urandom of=$work_dir/testdir/aa count=16 > /dev/null 2>&1
+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 \
+ >> $seqres.full 2>&1 || _fail "failed backup2"
+$BTRFS_UTIL_PROG sub snap -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"
+$BTRFS_UTIL_PROG receive $SCRATCH_MNT -vvvv -f $TEST_DIR/$tmp_dir/blah \
+ >> $seqres.full 2>&1 || _fail "receive failed"
+
+echo "Silence is golden"
+status=0 ; exit