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@xxxxxxxxxxxxxx> --- tests/generic/172 | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/tests/generic/172 b/tests/generic/172 index 26fb305..8192290 100755 --- a/tests/generic/172 +++ b/tests/generic/172 @@ -57,31 +57,27 @@ testdir=$SCRATCH_MNT/test-$seq mkdir $testdir echo "Reformat with appropriate size" -blksz="$(stat -f $testdir -c '%S')" -nr_blks=10240 umount $SCRATCH_MNT -sz_bytes=$((nr_blks * 3 / 2 * blksz)) -if [ $sz_bytes -lt $((32 * 1048576)) ]; then - sz_bytes=$((32 * 1048576)) -fi -_scratch_mkfs_sized $sz_bytes >> $seqres.full 2>&1 + +file_size=$((168 * 1024 * 1024)) +fs_size=$((256 * 1024 * 1024)) +_scratch_mkfs_sized $fs_size >> $seqres.full 2>&1 _scratch_mount >> $seqres.full 2>&1 rm -rf $testdir mkdir $testdir 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 sync echo "Allocate the rest of the space" -nr_free=$(stat -f -c '%f' $testdir) 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 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} >> $seqres.full 2>&1 echo ${out} @@ -89,7 +85,7 @@ echo ${out} echo "Remount and try CoW again" _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} >> $seqres.full 2>&1 echo ${out} -- 2.9.0 -- To unsubscribe from this list: send the line "unsubscribe fstests" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html