Files
apfstests/tests/btrfs/010
T
Darrick J. Wong 7e98d41a6e fstests: move test group info to test files
Refactor every test in the entire test suite to use the new boilerplate
functions.  This also migrates all the test group information into the
test files.  This patch has been autogenerated via the command:

./tools/convert-group btrfs ceph cifs ext4 f2fs generic nfs ocfs2 overlay perf shared udf xfs

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Allison Henderson <allison.henderson@oracle.com>
Reviewed-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2021-06-27 22:50:02 +08:00

53 lines
1.3 KiB
Bash
Executable File

#! /bin/bash
# SPDX-License-Identifier: GPL-2.0
# Copyright (c) 2017 Facebook. All Rights Reserved.
#
# FS QA Test 10
#
# Test delayed allocation with a large number of extents that are merged.
# Regression test for patch "Btrfs: fix delalloc accounting leak caused
# by u32 overflow".
#
. ./common/preamble
_begin_fstest auto
test_file="$TEST_DIR/$seq"
# Override the default cleanup function.
_cleanup()
{
cd /
rm -f $tmp.* "$test_file"
}
. ./common/filter
_supported_fs btrfs
_require_test
_require_btrfs_fs_sysfs
# Create 32k extents. All of these extents will be accounted as outstanding and
# reserved.
for ((i = 0; i < 32 * 1024; i++)); do
$XFS_IO_PROG -f -c "pwrite $((2 * 4096 * i)) 4096" "$test_file" >>"$seqres.full"
done
# Fill in the gaps between the created extents. The outstanding extents will
# all be merged into 1, but there will still be 32k reserved.
for ((i = 0; i < 32 * 1024; i++)); do
$XFS_IO_PROG -f -c "pwrite $((2 * 4096 * i + 4096)) 4096" "$test_file" >>"$seqres.full"
done
# Flush the delayed allocations.
sync
# Make sure that we didn't leak any metadata space.
uuid="$(findmnt -n -o UUID "$TEST_DIR")"
cd "/sys/fs/btrfs/$uuid/allocation"
echo "$(($(cat metadata/bytes_may_use) - $(cat global_rsv_reserved))) bytes leaked" | grep -v '^0 '
echo "Silence is golden"
status=0
exit