reflink: refactor mixed block creation code

Refactor the code that creates files with mixed block types that we feed
into CoW tests to make sure that we can tiptoe around that kind of stuff.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
This commit is contained in:
Darrick J. Wong
2016-02-09 23:47:22 -08:00
parent 92518fc8c1
commit 96de24c84a
13 changed files with 126 additions and 126 deletions
+2 -29
View File
@@ -69,30 +69,7 @@ mkdir $testdir
echo "Create the original files"
blksz=65536
nr=64
_pwrite_byte 0x61 0 $((blksz * nr)) "$testdir/file1" >> "$seqres.full"
$XFS_IO_PROG -f -c "truncate $((blksz * nr))" "$testdir/file3" >> "$seqres.full"
# 0 blocks are reflinked
seq 0 5 $nr | while read f; do
_reflink_range "$testdir/file1" $((blksz * f)) "$testdir/file3" $((blksz * f)) $blksz >> "$seqres.full"
_pwrite_byte 0x61 $((blksz * f)) $blksz "$testdir/file3.chk" >> "$seqres.full"
done
sync
# 1 blocks are unwritten
seq 1 5 $nr | while read f; do
$XFS_IO_PROG -f -c "falloc $((blksz * f)) $blksz" "$testdir/file3" >> "$seqres.full"
_pwrite_byte 0x00 $((blksz * f)) $blksz "$testdir/file3.chk" >> "$seqres.full"
done
sync
# 2 blocks are holes
seq 2 5 $nr | while read f; do
_pwrite_byte 0x00 $((blksz * f)) $blksz "$testdir/file3.chk" >> "$seqres.full"
done
# 3 blocks are regular
seq 3 5 $nr | while read f; do
_pwrite_byte 0x71 $((blksz * f)) $blksz "$testdir/file3" >> "$seqres.full"
_pwrite_byte 0x71 $((blksz * f)) $blksz "$testdir/file3.chk" >> "$seqres.full"
done
sync
_weave_reflink_rainbow $blksz $nr $testdir/file1 $testdir/file3 >> $seqres.full
_scratch_remount
echo "Compare files"
@@ -101,11 +78,7 @@ md5sum "$testdir/file3" | _filter_scratch
md5sum "$testdir/file3.chk" | _filter_scratch
echo "directio CoW across the transition"
# 4 blocks are delalloc (do later)
seq 4 5 $nr | while read f; do
_pwrite_byte 0x62 $((blksz * f)) $blksz "$testdir/file3" >> "$seqres.full"
_pwrite_byte 0x62 $((blksz * f)) $blksz "$testdir/file3.chk" >> "$seqres.full"
done
_weave_reflink_rainbow_delalloc $blksz $nr $testdir/file3 >> $seqres.full
# now cow
"$XFS_IO_PROG" -d -f -c "pwrite -S 0x63 -b $((blksz * nr / 2)) $((blksz * nr / 4)) $((blksz * nr / 2))" "$testdir/file3" >> "$seqres.full"
_pwrite_byte 0x63 $((blksz * nr / 4)) $((blksz * nr / 2)) "$testdir/file3.chk" >> "$seqres.full"