Files
apfstests/tests/xfs/139
T
Chandan Rajendra 9d8f4e1c86 xfs/139: work with 1k block size
Commit 0e2b99951f (xfs/139: work with 64k
block size) created a test filesystem with AG size set to (8192 * block
size). When working with a 1k block sized XFS filesystem, this tries to
set the AG size to 8MiB which is less than the minimum AG size of
16MiB. Hence creation of the filesystem had actually failed.

This commit fixes the issue by setting AG size to be (16384 * block
size).

Reported-by: Dave Chinner <david@fromorbit.com>
Signed-off-by: Chandan Rajendra <chandan@linux.vnet.ibm.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2018-10-21 17:29:32 +08:00

67 lines
1.4 KiB
Bash
Executable File

#! /bin/bash
# SPDX-License-Identifier: GPL-2.0
# Copyright (c) 2015, Oracle and/or its affiliates. All Rights Reserved.
#
# FS QA Test No. 139
#
# Try to ENOSPC while expanding the refcntbt by CoWing every block
# of a file that eats the whole AG.
#
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 -rf $tmp.* $testdir
}
# get standard environment, filters and checks
. ./common/rc
. ./common/filter
. ./common/reflink
# real QA test starts here
_supported_os Linux
_require_scratch_reflink
_require_cp_reflink
rm -f $seqres.full
_scratch_mkfs >/dev/null 2>&1
_scratch_mount
blksz=$(_get_file_block_size $SCRATCH_MNT)
_scratch_unmount
echo "Format and mount"
_scratch_mkfs -d agsize=$((16384 * $blksz)) > $seqres.full 2>&1
_scratch_mount >> $seqres.full 2>&1
testdir=$SCRATCH_MNT/test-$seq
mkdir $testdir
echo "Create the original files"
sz=$((20480 * $blksz))
_pwrite_byte 0x61 0 $sz $testdir/file1 >> $seqres.full
_cp_reflink $testdir/file1 $testdir/file2 >> $seqres.full
_scratch_cycle_mount
echo "CoW every other block"
_pwrite_byte 0x62 0 $sz $testdir/file1 >> $seqres.full
_scratch_cycle_mount
echo "Compare files"
od -t x1 $testdir/file1 | _filter_od
od -t x1 $testdir/file2 | _filter_od
#filefrag -v $testdir/file1 $testdir/file2
# success, all done
status=0
exit