This test was reproducing a bug triggered by creating a subvolume qgroup before creating the subvolume itself with a snapshot. The kernel patch: btrfs: forbid creating subvol qgroups explicitly prevents that and makes it fail with EINVAL. I could "fix" this test by expecting the EINVAL message in the output, but at that point it would simply be a test that creating a subvolume and snapshotting it works with qgroups, which is adequately tested by other tests which focus on accurately measuring shared/exclusive usage in various snapshot/reflink scenarios. To avoid confusion, I think it is best to simply delete this test. Signed-off-by: Boris Burkov --- tests/btrfs/303 | 77 --------------------------------------------- tests/btrfs/303.out | 2 -- 2 files changed, 79 deletions(-) delete mode 100755 tests/btrfs/303 delete mode 100644 tests/btrfs/303.out diff --git a/tests/btrfs/303 b/tests/btrfs/303 deleted file mode 100755 index 410460af5..000000000 --- a/tests/btrfs/303 +++ /dev/null @@ -1,77 +0,0 @@ -#! /bin/bash -# SPDX-License-Identifier: GPL-2.0 -# Copyright (C) 2023 SUSE Linux Products GmbH. All Rights Reserved. -# -# FS QA Test 303 -# -# A regression test to make sure snapshot creation won't cause transaction -# abort if there is already an existing qgroup. -# -. ./common/preamble -_begin_fstest auto quick snapshot subvol qgroup - -. ./common/filter - -_supported_fs btrfs -_require_scratch - -_fixed_by_kernel_commit xxxxxxxxxxxx \ - "btrfs: do not abort transaction if there is already an existing qgroup" - -_scratch_mkfs >> $seqres.full 2>&1 || _fail "mkfs failed" -_scratch_mount - -# Create the first subvolume and get its id. -# This subvolume id should not change no matter if there is an existing -# qgroup for it. -$BTRFS_UTIL_PROG subvolume create "$SCRATCH_MNT/subvol" >> $seqres.full -$BTRFS_UTIL_PROG subvolume snapshot "$SCRATCH_MNT/subvol" \ - "$SCRATCH_MNT/snapshot">> $seqres.full - -init_subvolid=$(_btrfs_get_subvolid "$SCRATCH_MNT" "snapshot") - -if [ -z "$init_subvolid" ]; then - _fail "Unable to get the subvolid of the first snapshot" -fi - -echo "Subvolumeid: ${init_subvolid}" >> $seqres.full - -_scratch_unmount - -# Re-create the fs, as btrfs won't reuse the subvolume id. -_scratch_mkfs >> $seqres.full 2>&1 || _fail "2nd mkfs failed" -_scratch_mount - -$BTRFS_UTIL_PROG quota enable "$SCRATCH_MNT" >> $seqres.full -_qgroup_rescan $SCRATCH_MNT >> $seqres.full - -# Create a qgroup for the first subvolume, this would make the later -# subvolume creation to find an existing qgroup, and abort transaction. -$BTRFS_UTIL_PROG qgroup create 0/"$init_subvolid" "$SCRATCH_MNT" >> $seqres.full - -# Now create the first snapshot, which should have the same subvolid no matter -# if the quota is enabled. -$BTRFS_UTIL_PROG subvolume create "$SCRATCH_MNT/subvol" >> $seqres.full -$BTRFS_UTIL_PROG subvolume snapshot "$SCRATCH_MNT/subvol" \ - "$SCRATCH_MNT/snapshot" >> $seqres.full - -# Either the snapshot create failed and transaction is aborted thus no -# snapshot here, or we should be able to create the snapshot. -new_subvolid=$(_btrfs_get_subvolid "$SCRATCH_MNT" "snapshot") - -echo "Subvolumeid: ${new_subvolid}" >> $seqres.full - -if [ -z "$new_subvolid" ]; then - _fail "Unable to get the subvolid of the first snapshot" -fi - -# Make sure the subvolumeid for the first snapshot didn't change. -if [ "$new_subvolid" -ne "$init_subvolid" ]; then - _fail "Subvolumeid for the first snapshot changed, has ${new_subvolid} expect ${init_subvolid}" -fi - -echo "Silence is golden" - -# success, all done -status=0 -exit diff --git a/tests/btrfs/303.out b/tests/btrfs/303.out deleted file mode 100644 index d48808e60..000000000 --- a/tests/btrfs/303.out +++ /dev/null @@ -1,2 +0,0 @@ -QA output created by 303 -Silence is golden -- 2.43.0