generic/172: raise fs size

In original codes, if block size is 4096, fs size will be limited
to 60MB. In such small fs, btrfs is not able to write 40MB data,
because some space has been reserved internally, so the first
_pwrite_byte in this test case will fail for enospc error.

Also from this test case's test purpose, it tries to reflink a file
that uses more than half of the fs space, so here we can just define
fs size to be 256MB, the file to be reflinked to be 168MB.

Signed-off-by: Wang Xiaoguang <wangxg.fnst@cn.fujitsu.com>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
This commit is contained in:
Wang Xiaoguang
2016-08-31 19:50:55 +08:00
committed by Eryu Guan
parent 0dea6dc3ea
commit a54bed2236
+8 -12
View File
@@ -57,31 +57,27 @@ testdir=$SCRATCH_MNT/test-$seq
mkdir $testdir mkdir $testdir
echo "Reformat with appropriate size" echo "Reformat with appropriate size"
blksz="$(stat -f $testdir -c '%S')"
nr_blks=10240
umount $SCRATCH_MNT umount $SCRATCH_MNT
sz_bytes=$((nr_blks * 3 / 2 * blksz))
if [ $sz_bytes -lt $((32 * 1048576)) ]; then file_size=$((168 * 1024 * 1024))
sz_bytes=$((32 * 1048576)) fs_size=$((256 * 1024 * 1024))
fi _scratch_mkfs_sized $fs_size >> $seqres.full 2>&1
_scratch_mkfs_sized $sz_bytes >> $seqres.full 2>&1
_scratch_mount >> $seqres.full 2>&1 _scratch_mount >> $seqres.full 2>&1
rm -rf $testdir rm -rf $testdir
mkdir $testdir mkdir $testdir
echo "Create a big file and reflink it" echo "Create a big file and reflink it"
_pwrite_byte 0x61 0 $((blksz * nr_blks)) $testdir/bigfile >> $seqres.full 2>&1 _pwrite_byte 0x61 0 $file_size $testdir/bigfile >> $seqres.full 2>&1
_cp_reflink $testdir/bigfile $testdir/clonefile _cp_reflink $testdir/bigfile $testdir/clonefile
sync sync
echo "Allocate the rest of the space" echo "Allocate the rest of the space"
nr_free=$(stat -f -c '%f' $testdir)
touch $testdir/file0 $testdir/file1 touch $testdir/file0 $testdir/file1
_pwrite_byte 0x61 0 $((blksz * nr_free)) $testdir/eat_my_space >> $seqres.full 2>&1 _pwrite_byte 0x61 0 $fs_size $testdir/eat_my_space >> $seqres.full 2>&1
sync sync
echo "CoW the big file" echo "CoW the big file"
out="$(_pwrite_byte 0x62 0 $((blksz * nr_blks)) $testdir/bigfile 2>&1)" out="$(_pwrite_byte 0x62 0 $file_size $testdir/bigfile 2>&1)"
echo ${out} | grep -q "No space left on device" || echo "CoW should have failed with ENOSPC" echo ${out} | grep -q "No space left on device" || echo "CoW should have failed with ENOSPC"
echo ${out} >> $seqres.full 2>&1 echo ${out} >> $seqres.full 2>&1
echo ${out} echo ${out}
@@ -89,7 +85,7 @@ echo ${out}
echo "Remount and try CoW again" echo "Remount and try CoW again"
_scratch_cycle_mount _scratch_cycle_mount
out="$(_pwrite_byte 0x62 0 $((blksz * nr_blks)) $testdir/bigfile 2>&1)" out="$(_pwrite_byte 0x62 0 $file_size $testdir/bigfile 2>&1)"
echo ${out} | grep -q "No space left on device" || echo "CoW should have failed with ENOSPC" echo ${out} | grep -q "No space left on device" || echo "CoW should have failed with ENOSPC"
echo ${out} >> $seqres.full 2>&1 echo ${out} >> $seqres.full 2>&1
echo ${out} echo ${out}