@@ -36,28 +36,29 @@ rm -f $seqres.full
_scratch_mkfs >>$seqres.full 2>&1
_scratch_mount
-# The first byte with a value of 0xae starts at an offset (2518890) which is not
-# a multiple of the block size.
+# The first byte with a value of 0xae starts at an offset (512Kb + 100) which is
+# not a multiple of the block size.
$XFS_IO_PROG -f \
- -c "pwrite -S 0x6b 0 2518890" \
- -c "pwrite -S 0xae 2518890 102398" \
+ -c "pwrite -S 0x6b 0 524388" \
+ -c "pwrite -S 0xae 524388 256K" \
$SCRATCH_MNT/foo | _filter_xfs_io
-# Create a second file with a length not aligned to the block size, whose bytes
-# all have the value 0x6b, so that its extent(s) can be deduplicated with the
-# first file.
-$XFS_IO_PROG -f -c "pwrite -S 0x6b 0 557771" $SCRATCH_MNT/bar | _filter_xfs_io
+# Create a second file with a length not aligned to the block size (128K + 100),
+# whose bytes all have the value 0x6b, so that its extent(s) can be deduplicated
+# with the first file.
+$XFS_IO_PROG -f -c "pwrite -S 0x6b 0 131172" $SCRATCH_MNT/bar | _filter_xfs_io
# The file is filled with bytes having the value 0x6b from offset 0 to offset
-# 2518889 and with the value 0xae from offset 2518890 to offset 2621287.
+# 524388 (512K + 100) and with the value 0xae from offset 524388 to offset
+# 786532 (512K + 100 + 256K).
echo "File content before first deduplication:"
-od -t x1 $SCRATCH_MNT/foo
+od -A d -t x1 $SCRATCH_MNT/foo
# Now deduplicate the entire second file into a range of the first file that
# also has all bytes with the value 0x6b. The destination range's end offset
# must not be aligned to the block size and must be less then the offset of
-# the first byte with the value 0xae (byte at offset 2518890).
-$XFS_IO_PROG -c "dedupe $SCRATCH_MNT/bar 0 1957888 557771" $SCRATCH_MNT/foo \
+# the first byte with the value 0xae (byte at offset 524388).
+$XFS_IO_PROG -c "dedupe $SCRATCH_MNT/bar 0 64K 131172" $SCRATCH_MNT/foo \
| _filter_xfs_io
# We should have exactly the same data we had before we asked for deduplication.
@@ -81,8 +82,9 @@ $XFS_IO_PROG -f -c "pwrite -S 0xae 0 100" $SCRATCH_MNT/baz | _filter_xfs_io
# before.
_scratch_cycle_mount
-# Now attempt to dedupe the single block of baz into foo.
-$XFS_IO_PROG -c "dedupe $SCRATCH_MNT/baz 0 2519040 100" $SCRATCH_MNT/foo \
+# Now attempt to dedupe the single block of baz into foo. The destination range,
+# in file foo, has all bytes with the same value (0xae) as file baz.
+$XFS_IO_PROG -c "dedupe $SCRATCH_MNT/baz 0 640K 100" $SCRATCH_MNT/foo \
| _filter_xfs_io
# Now attempt to unmount the filesystem before reading from the file. This is
@@ -1,45 +1,45 @@
QA output created by 517
-wrote 2518890/2518890 bytes at offset 0
+wrote 524388/524388 bytes at offset 0
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-wrote 102398/102398 bytes at offset 2518890
+wrote 262144/262144 bytes at offset 524388
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-wrote 557771/557771 bytes at offset 0
+wrote 131172/131172 bytes at offset 0
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
File content before first deduplication:
0000000 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b
*
-11467540 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b ae ae ae ae ae ae
-11467560 ae ae ae ae ae ae ae ae ae ae ae ae ae ae ae ae
+0524384 6b 6b 6b 6b ae ae ae ae ae ae ae ae ae ae ae ae
+0524400 ae ae ae ae ae ae ae ae ae ae ae ae ae ae ae ae
*
-11777540 ae ae ae ae ae ae ae ae
-11777550
-deduped 557771/557771 bytes at offset 1957888
+0786528 ae ae ae ae
+0786532
+deduped 131172/131172 bytes at offset 65536
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
File content after first deduplication and before unmounting:
0000000 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b
*
-2518880 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b ae ae ae ae ae ae
-2518896 ae ae ae ae ae ae ae ae ae ae ae ae ae ae ae ae
+0524384 6b 6b 6b 6b ae ae ae ae ae ae ae ae ae ae ae ae
+0524400 ae ae ae ae ae ae ae ae ae ae ae ae ae ae ae ae
*
-2621280 ae ae ae ae ae ae ae ae
-2621288
+0786528 ae ae ae ae
+0786532
File content after first unmount:
0000000 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b
*
-2518880 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b ae ae ae ae ae ae
-2518896 ae ae ae ae ae ae ae ae ae ae ae ae ae ae ae ae
+0524384 6b 6b 6b 6b ae ae ae ae ae ae ae ae ae ae ae ae
+0524400 ae ae ae ae ae ae ae ae ae ae ae ae ae ae ae ae
*
-2621280 ae ae ae ae ae ae ae ae
-2621288
+0786528 ae ae ae ae
+0786532
wrote 100/100 bytes at offset 0
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-deduped 100/100 bytes at offset 2519040
+deduped 100/100 bytes at offset 655360
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
File content after second deduplication:
0000000 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b
*
-2518880 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b ae ae ae ae ae ae
-2518896 ae ae ae ae ae ae ae ae ae ae ae ae ae ae ae ae
+0524384 6b 6b 6b 6b ae ae ae ae ae ae ae ae ae ae ae ae
+0524400 ae ae ae ae ae ae ae ae ae ae ae ae ae ae ae ae
*
-2621280 ae ae ae ae ae ae ae ae
-2621288
+0786528 ae ae ae ae
+0786532