#! /bin/bash
# SPDX-License-Identifier: GPL-2.0
# Copyright (c) 2020 Oracle.  All Rights Reserved.
#
# FS QA Test 216
#
# Test if the show_devname() returns sprout device instead of seed device.
#
# Fixed in kernel patch:
#   btrfs: btrfs_show_devname don't traverse into the seed fsid

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

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

# real QA test starts here
_supported_fs btrfs
_require_scratch_dev_pool 2

_scratch_dev_pool_get 2

seed=$(echo $SCRATCH_DEV_POOL | awk '{print $1}')
sprout=$(echo $SCRATCH_DEV_POOL | awk '{print $2}')

_mkfs_dev $seed
$BTRFS_TUNE_PROG -S 1 $seed
_mount $seed $SCRATCH_MNT >> $seqres.full 2>&1
cat /proc/self/mounts | grep $seed >> $seqres.full
$BTRFS_UTIL_PROG device add -f $sprout $SCRATCH_MNT
cat /proc/self/mounts | grep $sprout >> $seqres.full

# check if the show_devname() returns the sprout device instead of seed device.
dev=$(grep $SCRATCH_MNT /proc/self/mounts | $AWK_PROG '{print $1}')

if [ "$sprout" != "$dev" ]; then
	echo "Unexpected device: $dev, expected $sprout"
fi
echo "Silence is golden"

_scratch_dev_pool_put

# success, all done
status=0
exit
