#! /bin/bash
# FS QA Test 047
#
# Test that we can't set xattrs on subvolume placeholder directories.
# Regression test for Btrfs: disable xattr operations on subvolume directories.
#
#-----------------------------------------------------------------------
# Copyright (c) 2017 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`
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/attr

# remove previous $seqres.full before test
rm -f $seqres.full

# real QA test starts here

_supported_fs btrfs
_supported_os Linux
_require_attrs
_require_scratch

_scratch_mkfs >/dev/null 2>&1
_scratch_mount

$BTRFS_UTIL_PROG subvolume create "$SCRATCH_MNT/parent" >>$seqres.full
$BTRFS_UTIL_PROG subvolume create "$SCRATCH_MNT/parent/child" >>$seqres.full
$BTRFS_UTIL_PROG subvolume snapshot "$SCRATCH_MNT/parent" "$SCRATCH_MNT/snapshot" >>$seqres.full

$SETFATTR_PROG -n user.test -v foo "$SCRATCH_MNT/snapshot/child" |& _filter_scratch

# The original bug resulted in bogus delayed inodes being inserted, so run the
# delayed inodes by doing a commit.
$BTRFS_UTIL_PROG filesystem sync "$SCRATCH_MNT" >>$seqres.full

status=0
exit
