mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
9d8f4e1c86
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>
67 lines
1.4 KiB
Bash
Executable File
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
|