38 lines
1.3 KiB
Bash
Executable File
38 lines
1.3 KiB
Bash
Executable File
#!/bin/bash
|
|
#
|
|
# Clear stale qgroups
|
|
|
|
source "$TEST_TOP/common" || exit
|
|
|
|
check_prereq mkfs.btrfs
|
|
check_prereq btrfs
|
|
|
|
setup_root_helper
|
|
prepare_test_dev
|
|
|
|
run_check_mkfs_test_dev
|
|
run_check_mount_test_dev
|
|
run_check $SUDO_HELPER "$TOP/btrfs" quota enable "$TEST_MNT"
|
|
run_check $SUDO_HELPER "$TOP/btrfs" subvolume create "$TEST_MNT/subv1"
|
|
run_check $SUDO_HELPER "$TOP/btrfs" qgroup show "$TEST_MNT"
|
|
rootid=$(run_check_stdout "$TOP/btrfs" inspect-internal rootid "$TEST_MNT/subv1")
|
|
run_check $SUDO_HELPER "$TOP/btrfs" subvolume delete "$TEST_MNT/subv1"
|
|
run_check $SUDO_HELPER "$TOP/btrfs" qgroup show "$TEST_MNT"
|
|
|
|
# Subvolume under deletion won't be deleted and "btrfs qgroup clear-stale"
|
|
# would detect it and not report an error.
|
|
# So here we have to wait for the subvolume deletion.
|
|
run_check $SUDO_HELPER "$TOP/btrfs" subvolume sync "$TEST_MNT" "$rootid"
|
|
run_check $SUDO_HELPER "$TOP/btrfs" qgroup show "$TEST_MNT"
|
|
# After cleaning the subvolume it must pass
|
|
run_check $SUDO_HELPER "$TOP/btrfs" qgroup clear-stale "$TEST_MNT"
|
|
|
|
list=$(run_check_stdout $SUDO_HELPER "$TOP/btrfs" qgroup show "$TEST_MNT")
|
|
if echo "$list" | grep -q "0/$rootid"; then
|
|
_fail "stale qgroups not deleted"
|
|
fi
|
|
if echo "$list" | grep -q "<stale>"; then
|
|
_fail "stale qgroups not deleted"
|
|
fi
|
|
run_check_umount_test_dev
|