#! /bin/bash
# SPDX-License-Identifier: GPL-2.0
# Copyright (c) 2018 SUSE Linux Products GmbH.  All Rights Reserved.
#
# FS QA Test 171
#
# Test if btrfs can clear high level childless qgroup's accounting numbers
# during rescan.
#
# Fixed by the following kernel patch:
# "btrfs: qgroup: Dirty all qgroups before rescan"
#
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/filter.btrfs

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

# real QA test starts here
_supported_fs btrfs
_require_scratch

_scratch_mkfs > /dev/null 2>&1
_scratch_mount


# Populate the fs
$BTRFS_UTIL_PROG subvolume create "$SCRATCH_MNT/subvol" > /dev/null
_pwrite_byte 0xcdcd 0 1M "$SCRATCH_MNT/subvol/file1" > /dev/null

# Ensure that buffered file data is persisted, so we won't have an
# empty file in the snapshot.
sync
$BTRFS_UTIL_PROG subvolume snapshot "$SCRATCH_MNT/subvol" \
	"$SCRATCH_MNT/snapshot" > /dev/null


$BTRFS_UTIL_PROG quota enable "$SCRATCH_MNT" > /dev/null
$BTRFS_UTIL_PROG quota rescan -w "$SCRATCH_MNT" > /dev/null

# Create high level qgroup
$BTRFS_UTIL_PROG qgroup create 1/0 "$SCRATCH_MNT"

$BTRFS_UTIL_PROG qgroup assign "$SCRATCH_MNT/snapshot" 1/0 "$SCRATCH_MNT" \
	2>&1 | _filter_btrfs_qgroup_assign_warnings

# Above assignment will mark qgroup inconsistent due to the shared extents
# between subvol/snapshot/high level qgroup, do rescan here.
$BTRFS_UTIL_PROG quota rescan -w "$SCRATCH_MNT" > /dev/null

# Now remove the qgroup relationship and make 1/0 childless
# Due to the shared extent outside of 1/0, we will mark qgroup inconsistent
# and keep the number of qgroup 1/0.
$BTRFS_UTIL_PROG qgroup remove "$SCRATCH_MNT/snapshot" 1/0 "$SCRATCH_MNT" \
	2>&1 | _filter_btrfs_qgroup_assign_warnings

# Above removal also marks qgroup inconsistent, rescan again
$BTRFS_UTIL_PROG quota rescan -w "$SCRATCH_MNT" > /dev/null

# After the test, btrfs check will verify qgroup numbers to catch any
# corruption.

echo "Silence is golden"

# success, all done
status=0
exit
