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:
Darrick J. Wong
2016-02-08 09:27:15 +11:00
committed by Dave Chinner
parent 589d17dbfa
commit a3d855e424
8 changed files with 10 additions and 10 deletions
+1 -1
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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