mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
reflink: fix off-by-one errors when iterating file blocks in a loop
When we're iterating file blocks in a loop (via seq), we have to end at $nr-1, not $nr. Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com> Reviewed-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Dave Chinner <david@fromorbit.com>
This commit is contained in:
committed by
Dave Chinner
parent
589d17dbfa
commit
a3d855e424
+1
-1
@@ -69,7 +69,7 @@ seq 0 2 $((NR-1)) | 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
|
||||
seq 1 2 $NR | while read f; do
|
||||
seq 1 2 $((NR-1)) | while read f; do
|
||||
_reflink_range "$TESTDIR/file2" $((BLKSZ * f)) "$TESTDIR/file3" $((BLKSZ * f)) $BLKSZ >> "$seqres.full"
|
||||
_pwrite_byte 0x62 $((BLKSZ * f)) $BLKSZ "$TESTDIR/file3.chk" >> "$seqres.full"
|
||||
done
|
||||
|
||||
+1
-1
@@ -69,7 +69,7 @@ seq 0 2 $((NR-1)) | 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
|
||||
seq 1 2 $NR | while read f; do
|
||||
seq 1 2 $((NR-1)) | while read f; do
|
||||
_reflink_range "$TESTDIR/file2" $((BLKSZ * f)) "$TESTDIR/file3" $((BLKSZ * f)) $BLKSZ >> "$seqres.full"
|
||||
_pwrite_byte 0x62 $((BLKSZ * f)) $BLKSZ "$TESTDIR/file3.chk" >> "$seqres.full"
|
||||
done
|
||||
|
||||
+1
-1
@@ -112,7 +112,7 @@ seq 0 2 $((NR-1)) | 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
|
||||
seq 1 2 $NR | while read f; do
|
||||
seq 1 2 $((NR-1)) | while read f; do
|
||||
_reflink_range "$TESTDIR/file2" $((BLKSZ * f)) "$TESTDIR/file3" $((BLKSZ * f)) $BLKSZ >> "$seqres.full"
|
||||
_pwrite_byte 0x62 $((BLKSZ * f)) $BLKSZ "$TESTDIR/file3.chk" >> "$seqres.full"
|
||||
done
|
||||
|
||||
+1
-1
@@ -112,7 +112,7 @@ seq 0 2 $((NR-1)) | 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
|
||||
seq 1 2 $NR | while read f; do
|
||||
seq 1 2 $((NR-1)) | while read f; do
|
||||
_reflink_range "$TESTDIR/file2" $((BLKSZ * f)) "$TESTDIR/file3" $((BLKSZ * f)) $BLKSZ >> "$seqres.full"
|
||||
_pwrite_byte 0x62 $((BLKSZ * f)) $BLKSZ "$TESTDIR/file3.chk" >> "$seqres.full"
|
||||
done
|
||||
|
||||
+1
-1
@@ -79,7 +79,7 @@ md5sum "$TESTDIR/file3" | _filter_scratch
|
||||
md5sum "$TESTDIR/file3.chk" | _filter_scratch
|
||||
|
||||
echo "directio CoW across the transition"
|
||||
seq 1 2 $NR | while read f; do
|
||||
seq 1 2 $((NR-1)) | 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
|
||||
|
||||
+1
-1
@@ -79,7 +79,7 @@ md5sum "$TESTDIR/file3" | _filter_scratch
|
||||
md5sum "$TESTDIR/file3.chk" | _filter_scratch
|
||||
|
||||
echo "CoW across the transition"
|
||||
seq 1 2 $NR | while read f; do
|
||||
seq 1 2 $((NR-1)) | 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
|
||||
|
||||
+3
-3
@@ -65,9 +65,9 @@ NR_BLKS=$((4 * BLKSZ / 12))
|
||||
_pwrite_byte 0x61 0 $((BLKSZ * NR_BLKS)) "$TESTDIR/file1" >> "$seqres.full"
|
||||
|
||||
echo "Reflink every other block"
|
||||
seq 1 $((NR_BLKS / 2)) | while read nr; do
|
||||
_reflink_range "$TESTDIR/file1" $((nr * 2 * BLKSZ)) \
|
||||
"$TESTDIR/file2" $((nr * 2 * BLKSZ)) $BLKSZ >> "$seqres.full"
|
||||
seq 1 2 $((NR_BLKS - 1)) | while read nr; do
|
||||
_reflink_range "$TESTDIR/file1" $((nr * BLKSZ)) \
|
||||
"$TESTDIR/file2" $((nr * BLKSZ)) $BLKSZ >> "$seqres.full"
|
||||
done
|
||||
|
||||
echo "Create metadump file"
|
||||
|
||||
+1
-1
@@ -70,7 +70,7 @@ cmp -s "$TESTDIR/file1" "$TESTDIR/file2" || echo "file1 and file2 do not match"
|
||||
cmp -s "$TESTDIR/file2" "$TESTDIR/file2.chk" || echo "file2 and file2.chk do not match"
|
||||
|
||||
echo "CoW every other block"
|
||||
seq 1 2 $NR | while read f; do
|
||||
seq 1 2 $((NR - 1)) | while read f; do
|
||||
_pwrite_byte 0x62 $((f * BLKSZ)) $BLKSZ "$TESTDIR/file2" >> "$seqres.full"
|
||||
_pwrite_byte 0x62 $((f * BLKSZ)) $BLKSZ "$TESTDIR/file2.chk" >> "$seqres.full"
|
||||
done
|
||||
|
||||
Reference in New Issue
Block a user