* [PATCH V2 1/5] Filter xfs_io and od's output in units of FS block size
2015-11-30 10:16 [PATCH V2 0/5] Fix Btrfs tests to work on non-4k block sized fs instances Chandan Rajendra
@ 2015-11-30 10:16 ` Chandan Rajendra
2015-12-10 17:24 ` Filipe Manana
2015-11-30 10:16 ` [PATCH V2 2/5] Fix btrfs/017 to work on non-4k block sized filesystems Chandan Rajendra
` (3 subsequent siblings)
4 siblings, 1 reply; 11+ messages in thread
From: Chandan Rajendra @ 2015-11-30 10:16 UTC (permalink / raw)
To: fstests; +Cc: Chandan Rajendra, linux-btrfs, fdmanana, chandan
The helpers introduced in this commit will be used to make btrfs tests that
assume 4k as the block size to work on non-4k blocksized filesystem instances
as well.
Signed-off-by: Chandan Rajendra <chandan@linux.vnet.ibm.com>
---
common/filter | 45 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 45 insertions(+)
diff --git a/common/filter b/common/filter
index af456c9..05f2fab 100644
--- a/common/filter
+++ b/common/filter
@@ -229,6 +229,38 @@ _filter_xfs_io_unique()
common_line_filter | _filter_xfs_io
}
+_filter_xfs_io_units_modified()
+{
+ UNIT=$1
+ UNIT_SIZE=$2
+
+ $AWK_PROG -v unit="$UNIT" -v unit_size=$UNIT_SIZE '
+ /wrote/ {
+ split($2, bytes, "/")
+
+ bytes_written = strtonum(bytes[1])
+
+ offset = strtonum($NF)
+
+ unit_start = offset / unit_size
+ unit_start = int(unit_start)
+ unit_end = (offset + bytes_written - 1) / unit_size
+ unit_end = int(unit_end)
+
+ printf("%ss modified: [%d - %d]\n", unit, unit_start, unit_end)
+
+ next
+ }
+ '
+}
+
+_filter_xfs_io_blocks_modified()
+{
+ BLOCK_SIZE=$(get_block_size $SCRATCH_MNT)
+
+ _filter_xfs_io_units_modified "Block" $BLOCK_SIZE
+}
+
_filter_test_dir()
{
sed -e "s,$TEST_DEV,TEST_DEV,g" -e "s,$TEST_DIR,TEST_DIR,g"
@@ -323,5 +355,18 @@ _filter_ro_mount() {
-e "s/mount: cannot mount block device/mount: cannot mount/g"
}
+_filter_od()
+{
+ BLOCK_SIZE=$(get_block_size $SCRATCH_MNT)
+ $AWK_PROG -v block_size=$BLOCK_SIZE '
+ /^[0-9]+/ {
+ offset = strtonum("0"$1);
+ $1 = sprintf("%o", offset / block_size);
+ print $0;
+ }
+ /\*/
+ '
+}
+
# make sure this script returns success
/bin/true
--
2.1.0
^ permalink raw reply related [flat|nested] 11+ messages in thread* Re: [PATCH V2 1/5] Filter xfs_io and od's output in units of FS block size
2015-11-30 10:16 ` [PATCH V2 1/5] Filter xfs_io and od's output in units of FS block size Chandan Rajendra
@ 2015-12-10 17:24 ` Filipe Manana
0 siblings, 0 replies; 11+ messages in thread
From: Filipe Manana @ 2015-12-10 17:24 UTC (permalink / raw)
To: Chandan Rajendra; +Cc: fstests, linux-btrfs@vger.kernel.org, chandan
On Mon, Nov 30, 2015 at 10:16 AM, Chandan Rajendra
<chandan@linux.vnet.ibm.com> wrote:
> The helpers introduced in this commit will be used to make btrfs tests that
> assume 4k as the block size to work on non-4k blocksized filesystem instances
> as well.
>
> Signed-off-by: Chandan Rajendra <chandan@linux.vnet.ibm.com>
Reviewed-by: Filipe Manana <fdmanana@suse.com>
Thanks!
> ---
> common/filter | 45 +++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 45 insertions(+)
>
> diff --git a/common/filter b/common/filter
> index af456c9..05f2fab 100644
> --- a/common/filter
> +++ b/common/filter
> @@ -229,6 +229,38 @@ _filter_xfs_io_unique()
> common_line_filter | _filter_xfs_io
> }
>
> +_filter_xfs_io_units_modified()
> +{
> + UNIT=$1
> + UNIT_SIZE=$2
> +
> + $AWK_PROG -v unit="$UNIT" -v unit_size=$UNIT_SIZE '
> + /wrote/ {
> + split($2, bytes, "/")
> +
> + bytes_written = strtonum(bytes[1])
> +
> + offset = strtonum($NF)
> +
> + unit_start = offset / unit_size
> + unit_start = int(unit_start)
> + unit_end = (offset + bytes_written - 1) / unit_size
> + unit_end = int(unit_end)
> +
> + printf("%ss modified: [%d - %d]\n", unit, unit_start, unit_end)
> +
> + next
> + }
> + '
> +}
> +
> +_filter_xfs_io_blocks_modified()
> +{
> + BLOCK_SIZE=$(get_block_size $SCRATCH_MNT)
> +
> + _filter_xfs_io_units_modified "Block" $BLOCK_SIZE
> +}
> +
> _filter_test_dir()
> {
> sed -e "s,$TEST_DEV,TEST_DEV,g" -e "s,$TEST_DIR,TEST_DIR,g"
> @@ -323,5 +355,18 @@ _filter_ro_mount() {
> -e "s/mount: cannot mount block device/mount: cannot mount/g"
> }
>
> +_filter_od()
> +{
> + BLOCK_SIZE=$(get_block_size $SCRATCH_MNT)
> + $AWK_PROG -v block_size=$BLOCK_SIZE '
> + /^[0-9]+/ {
> + offset = strtonum("0"$1);
> + $1 = sprintf("%o", offset / block_size);
> + print $0;
> + }
> + /\*/
> + '
> +}
> +
> # make sure this script returns success
> /bin/true
> --
> 2.1.0
>
--
Filipe David Manana,
"Reasonable men adapt themselves to the world.
Unreasonable men adapt the world to themselves.
That's why all progress depends on unreasonable men."
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH V2 2/5] Fix btrfs/017 to work on non-4k block sized filesystems
2015-11-30 10:16 [PATCH V2 0/5] Fix Btrfs tests to work on non-4k block sized fs instances Chandan Rajendra
2015-11-30 10:16 ` [PATCH V2 1/5] Filter xfs_io and od's output in units of FS block size Chandan Rajendra
@ 2015-11-30 10:16 ` Chandan Rajendra
2015-12-10 17:25 ` Filipe Manana
2015-11-30 10:16 ` [PATCH V2 3/5] Fix btrfs/055 " Chandan Rajendra
` (2 subsequent siblings)
4 siblings, 1 reply; 11+ messages in thread
From: Chandan Rajendra @ 2015-11-30 10:16 UTC (permalink / raw)
To: fstests; +Cc: Chandan Rajendra, linux-btrfs, fdmanana, chandan
This commit makes use of the new _filter_xfs_io_blocks_modified filtering
function to print information in terms of file blocks rather than file
offset.
Signed-off-by: Chandan Rajendra <chandan@linux.vnet.ibm.com>
---
tests/btrfs/017 | 16 ++++++++++++----
tests/btrfs/017.out | 3 +--
2 files changed, 13 insertions(+), 6 deletions(-)
diff --git a/tests/btrfs/017 b/tests/btrfs/017
index f8855e3..34c5f0a 100755
--- a/tests/btrfs/017
+++ b/tests/btrfs/017
@@ -63,13 +63,21 @@ rm -f $seqres.full
_scratch_mkfs "--nodesize 65536" >>$seqres.full 2>&1
_scratch_mount
-$XFS_IO_PROG -f -d -c "pwrite 0 8K" $SCRATCH_MNT/foo | _filter_xfs_io
+BLOCK_SIZE=$(get_block_size $SCRATCH_MNT)
+EXTENT_SIZE=$((2 * $BLOCK_SIZE))
+
+$XFS_IO_PROG -f -d -c "pwrite 0 $EXTENT_SIZE" $SCRATCH_MNT/foo \
+ | _filter_xfs_io_blocks_modified
_run_btrfs_util_prog subvolume snapshot $SCRATCH_MNT $SCRATCH_MNT/snap
-$CLONER_PROG -s 0 -d 0 -l 8192 $SCRATCH_MNT/foo $SCRATCH_MNT/foo-reflink
-$CLONER_PROG -s 0 -d 0 -l 8192 $SCRATCH_MNT/foo $SCRATCH_MNT/snap/foo-reflink
-$CLONER_PROG -s 0 -d 0 -l 8192 $SCRATCH_MNT/foo $SCRATCH_MNT/snap/foo-reflink2
+$CLONER_PROG -s 0 -d 0 -l $EXTENT_SIZE $SCRATCH_MNT/foo $SCRATCH_MNT/foo-reflink
+
+$CLONER_PROG -s 0 -d 0 -l $EXTENT_SIZE $SCRATCH_MNT/foo \
+ $SCRATCH_MNT/snap/foo-reflink
+
+$CLONER_PROG -s 0 -d 0 -l $EXTENT_SIZE $SCRATCH_MNT/foo \
+ $SCRATCH_MNT/snap/foo-reflink2
_run_btrfs_util_prog quota enable $SCRATCH_MNT
_run_btrfs_util_prog quota rescan -w $SCRATCH_MNT
diff --git a/tests/btrfs/017.out b/tests/btrfs/017.out
index f940f3a..503eb88 100644
--- a/tests/btrfs/017.out
+++ b/tests/btrfs/017.out
@@ -1,5 +1,4 @@
QA output created by 017
-wrote 8192/8192 bytes at offset 0
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
+Blocks modified: [0 - 1]
65536 65536
65536 65536
--
2.1.0
^ permalink raw reply related [flat|nested] 11+ messages in thread* Re: [PATCH V2 2/5] Fix btrfs/017 to work on non-4k block sized filesystems
2015-11-30 10:16 ` [PATCH V2 2/5] Fix btrfs/017 to work on non-4k block sized filesystems Chandan Rajendra
@ 2015-12-10 17:25 ` Filipe Manana
0 siblings, 0 replies; 11+ messages in thread
From: Filipe Manana @ 2015-12-10 17:25 UTC (permalink / raw)
To: Chandan Rajendra; +Cc: fstests, linux-btrfs@vger.kernel.org, chandan
On Mon, Nov 30, 2015 at 10:16 AM, Chandan Rajendra
<chandan@linux.vnet.ibm.com> wrote:
> This commit makes use of the new _filter_xfs_io_blocks_modified filtering
> function to print information in terms of file blocks rather than file
> offset.
>
> Signed-off-by: Chandan Rajendra <chandan@linux.vnet.ibm.com>
Reviewed-by: Filipe Manana <fdmanana@suse.com>
Thanks!
> ---
> tests/btrfs/017 | 16 ++++++++++++----
> tests/btrfs/017.out | 3 +--
> 2 files changed, 13 insertions(+), 6 deletions(-)
>
> diff --git a/tests/btrfs/017 b/tests/btrfs/017
> index f8855e3..34c5f0a 100755
> --- a/tests/btrfs/017
> +++ b/tests/btrfs/017
> @@ -63,13 +63,21 @@ rm -f $seqres.full
> _scratch_mkfs "--nodesize 65536" >>$seqres.full 2>&1
> _scratch_mount
>
> -$XFS_IO_PROG -f -d -c "pwrite 0 8K" $SCRATCH_MNT/foo | _filter_xfs_io
> +BLOCK_SIZE=$(get_block_size $SCRATCH_MNT)
> +EXTENT_SIZE=$((2 * $BLOCK_SIZE))
> +
> +$XFS_IO_PROG -f -d -c "pwrite 0 $EXTENT_SIZE" $SCRATCH_MNT/foo \
> + | _filter_xfs_io_blocks_modified
>
> _run_btrfs_util_prog subvolume snapshot $SCRATCH_MNT $SCRATCH_MNT/snap
>
> -$CLONER_PROG -s 0 -d 0 -l 8192 $SCRATCH_MNT/foo $SCRATCH_MNT/foo-reflink
> -$CLONER_PROG -s 0 -d 0 -l 8192 $SCRATCH_MNT/foo $SCRATCH_MNT/snap/foo-reflink
> -$CLONER_PROG -s 0 -d 0 -l 8192 $SCRATCH_MNT/foo $SCRATCH_MNT/snap/foo-reflink2
> +$CLONER_PROG -s 0 -d 0 -l $EXTENT_SIZE $SCRATCH_MNT/foo $SCRATCH_MNT/foo-reflink
> +
> +$CLONER_PROG -s 0 -d 0 -l $EXTENT_SIZE $SCRATCH_MNT/foo \
> + $SCRATCH_MNT/snap/foo-reflink
> +
> +$CLONER_PROG -s 0 -d 0 -l $EXTENT_SIZE $SCRATCH_MNT/foo \
> + $SCRATCH_MNT/snap/foo-reflink2
>
> _run_btrfs_util_prog quota enable $SCRATCH_MNT
> _run_btrfs_util_prog quota rescan -w $SCRATCH_MNT
> diff --git a/tests/btrfs/017.out b/tests/btrfs/017.out
> index f940f3a..503eb88 100644
> --- a/tests/btrfs/017.out
> +++ b/tests/btrfs/017.out
> @@ -1,5 +1,4 @@
> QA output created by 017
> -wrote 8192/8192 bytes at offset 0
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> +Blocks modified: [0 - 1]
> 65536 65536
> 65536 65536
> --
> 2.1.0
>
> --
> To unsubscribe from this list: send the line "unsubscribe fstests" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
Filipe David Manana,
"Reasonable men adapt themselves to the world.
Unreasonable men adapt the world to themselves.
That's why all progress depends on unreasonable men."
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH V2 3/5] Fix btrfs/055 to work on non-4k block sized filesystems
2015-11-30 10:16 [PATCH V2 0/5] Fix Btrfs tests to work on non-4k block sized fs instances Chandan Rajendra
2015-11-30 10:16 ` [PATCH V2 1/5] Filter xfs_io and od's output in units of FS block size Chandan Rajendra
2015-11-30 10:16 ` [PATCH V2 2/5] Fix btrfs/017 to work on non-4k block sized filesystems Chandan Rajendra
@ 2015-11-30 10:16 ` Chandan Rajendra
2015-12-10 17:25 ` Filipe Manana
2015-11-30 10:16 ` [PATCH V2 4/5] Fix btrfs/056 " Chandan Rajendra
2015-11-30 10:17 ` [PATCH V2 5/5] Fix btrfs/096 " Chandan Rajendra
4 siblings, 1 reply; 11+ messages in thread
From: Chandan Rajendra @ 2015-11-30 10:16 UTC (permalink / raw)
To: fstests; +Cc: Chandan Rajendra, linux-btrfs, fdmanana, chandan
This commit makes use of the new _filter_xfs_io_blocks_modified and _filter_od
filtering functions to print information in terms of file blocks rather than
file offset.
Signed-off-by: Chandan Rajendra <chandan@linux.vnet.ibm.com>
---
tests/btrfs/055 | 128 ++++++++++--------
tests/btrfs/055.out | 378 +++++++++++++++++++++++++---------------------------
2 files changed, 259 insertions(+), 247 deletions(-)
diff --git a/tests/btrfs/055 b/tests/btrfs/055
index c0dd9ed..1f50850 100755
--- a/tests/btrfs/055
+++ b/tests/btrfs/055
@@ -60,88 +60,110 @@ test_btrfs_clone_with_holes()
_scratch_mkfs "$1" >/dev/null 2>&1
_scratch_mount
- # Create a file with 4 extents and 1 hole, all with a size of 8Kb each.
- # The hole is in the range [16384, 24576[.
- $XFS_IO_PROG -s -f -c "pwrite -S 0x01 -b 8192 0 8192" \
- -c "pwrite -S 0x02 -b 8192 8192 8192" \
- -c "pwrite -S 0x04 -b 8192 24576 8192" \
- -c "pwrite -S 0x05 -b 8192 32768 8192" \
- $SCRATCH_MNT/foo | _filter_xfs_io
+ BLOCK_SIZE=$(get_block_size $SCRATCH_MNT)
- # Clone destination file, 1 extent of 96kb.
- $XFS_IO_PROG -s -f -c "pwrite -S 0xff -b 98304 0 98304" \
- $SCRATCH_MNT/bar | _filter_xfs_io
+ EXTENT_SIZE=$((2 * $BLOCK_SIZE))
- # Clone 2nd extent, 8Kb hole and 3rd extent of foo into bar.
- $CLONER_PROG -s 8192 -d 0 -l 24576 $SCRATCH_MNT/foo $SCRATCH_MNT/bar
+ OFFSET=0
+
+ # Create a file with 4 extents and 1 hole, all with 2 blocks each.
+ # The hole is in the block range [4, 5[.
+ $XFS_IO_PROG -s -f -c "pwrite -S 0x01 -b $EXTENT_SIZE $OFFSET $EXTENT_SIZE" \
+ $SCRATCH_MNT/foo | _filter_xfs_io_blocks_modified
+
+ OFFSET=$(($OFFSET + $EXTENT_SIZE))
+ $XFS_IO_PROG -s -f -c "pwrite -S 0x02 -b $EXTENT_SIZE $OFFSET $EXTENT_SIZE" \
+ $SCRATCH_MNT/foo | _filter_xfs_io_blocks_modified
+
+ OFFSET=$(($OFFSET + 2 * $EXTENT_SIZE))
+ $XFS_IO_PROG -s -f -c "pwrite -S 0x04 -b $EXTENT_SIZE $OFFSET $EXTENT_SIZE" \
+ $SCRATCH_MNT/foo | _filter_xfs_io_blocks_modified
+
+ OFFSET=$(($OFFSET + $EXTENT_SIZE))
+ $XFS_IO_PROG -s -f -c "pwrite -S 0x05 -b $EXTENT_SIZE $OFFSET $EXTENT_SIZE" \
+ $SCRATCH_MNT/foo | _filter_xfs_io_blocks_modified
+
+ # Clone destination file, 1 extent of 24 blocks.
+ EXTENT_SIZE=$((24 * $BLOCK_SIZE))
+ $XFS_IO_PROG -s -f -c "pwrite -S 0xff -b $EXTENT_SIZE 0 $EXTENT_SIZE" \
+ $SCRATCH_MNT/bar | _filter_xfs_io_blocks_modified
+
+ # Clone 2nd extent, 2-blocks sized hole and 3rd extent of foo into bar.
+ $CLONER_PROG -s $((2 * $BLOCK_SIZE)) -d 0 -l $((6 * $BLOCK_SIZE)) \
+ $SCRATCH_MNT/foo $SCRATCH_MNT/bar
# Verify both extents and the hole were cloned.
echo "1) Check both extents and the hole were cloned"
- od -t x1 $SCRATCH_MNT/bar
+ od -t x1 $SCRATCH_MNT/bar | _filter_od
- # Cloning range starts at the middle of an hole.
- $CLONER_PROG -s 20480 -d 32768 -l 12288 $SCRATCH_MNT/foo \
- $SCRATCH_MNT/bar
+ # Cloning range starts at the middle of a hole.
+ $CLONER_PROG -s $((5 * $BLOCK_SIZE)) -d $((8 * $BLOCK_SIZE)) \
+ -l $((3 * $BLOCK_SIZE)) $SCRATCH_MNT/foo $SCRATCH_MNT/bar
- # Verify that half of the hole and the following 8Kb extent were cloned.
- echo "2) Check half hole and one 8Kb extent were cloned"
- od -t x1 $SCRATCH_MNT/bar
+ # Verify that half of the hole and the following 2 block extent were cloned.
+ echo "2) Check half hole and the following 2 block extent were cloned"
+ od -t x1 $SCRATCH_MNT/bar | _filter_od
- # Cloning range ends at the middle of an hole.
- $CLONER_PROG -s 0 -d 65536 -l 20480 $SCRATCH_MNT/foo $SCRATCH_MNT/bar
+ # Cloning range ends at the middle of a hole.
+ $CLONER_PROG -s 0 -d $((16 * $BLOCK_SIZE)) -l $((5 * $BLOCK_SIZE)) \
+ $SCRATCH_MNT/foo $SCRATCH_MNT/bar
- # Verify that 2 extents of 8kb and a 4kb hole were cloned.
- echo "3) Check that 2 extents of 8kb eacg and a 4kb hole were cloned"
- od -t x1 $SCRATCH_MNT/bar
+ # Verify that 2 extents of 2 blocks size and a 1-block hole were cloned.
+ echo "3) Check that 2 extents of 2 blocks each and a hole of 1 block were cloned"
+ od -t x1 $SCRATCH_MNT/bar | _filter_od
- # Create a 24Kb hole at the end of the source file (foo).
- $XFS_IO_PROG -c "truncate 65536" $SCRATCH_MNT/foo
+ # Create a 6-block hole at the end of the source file (foo).
+ $XFS_IO_PROG -c "truncate $((16 * $BLOCK_SIZE))" $SCRATCH_MNT/foo \
+ | _filter_xfs_io_blocks_modified
sync
# Now clone a range that overlaps that hole at the end of the foo file.
- # It should clone the last 4Kb of the extent at offset 32768 and the
- # first 8kb of the 24kb hole at the end of foo.
- $CLONER_PROG -s 36864 -d 86016 -l 12288 $SCRATCH_MNT/foo \
- $SCRATCH_MNT/bar
+ # It should clone the 10th block and the first two blocks of the hole
+ # at the end of foo.
+ $CLONER_PROG -s $((9 * $BLOCK_SIZE)) -d $((21 * $BLOCK_SIZE)) \
+ -l $((3 * $BLOCK_SIZE)) $SCRATCH_MNT/foo $SCRATCH_MNT/bar
- # Verify that the second half of the 8Kb extent at offset 32768 of foo
- # and the first 8Kb of the 24kb hole of foo were cloned into bar.
- echo "4) Check that 4kb of 1 extent and 8Kb of an hole were cloned"
- od -t x1 $SCRATCH_MNT/bar
+ # Verify that the 9th block of foo and the first 2 blocks of the
+ # 6-block hole of foo were cloned into bar.
+ echo "4) Check that a block of 1 extent and 2 blocks of a hole were cloned"
+ od -t x1 $SCRATCH_MNT/bar | _filter_od
# Clone the same range as before, but clone it into a different offset
# of the target (bar) such that it increases the size of the target
- # by 8Kb.
- $CLONER_PROG -s 36864 -d 94208 -l 12288 $SCRATCH_MNT/foo \
- $SCRATCH_MNT/bar
+ # by 2 blocks.
+ $CLONER_PROG -s $((9 * $BLOCK_SIZE)) -d $((23 * $BLOCK_SIZE)) \
+ -l $((3 * $BLOCK_SIZE)) $SCRATCH_MNT/foo $SCRATCH_MNT/bar
- # Verify that the second half of the 8Kb extent at offset 32768 of foo
- # and the first 8Kb of the 24kb hole of foo were cloned into bar at
- # bar's offset 94208 and that bar's size increased by 8Kb.
- echo "5) Check that 4kb of 1 extent and 8Kb of an hole were cloned and file size increased"
- od -t x1 $SCRATCH_MNT/bar
+ # Verify that the 9th block of foo and the first 2 blocks of the 6-block
+ # hole of foo were cloned into bar at bar's 23rd block and that bar's
+ # size increased by 2 blocks.
+ echo "5) Check that a block of 1 extent and 2 blocks of a hole were" \
+ "cloned and file size increased"
+ od -t x1 $SCRATCH_MNT/bar | _filter_od
# Create a new completely sparse file (no extents, it's a big hole).
- $XFS_IO_PROG -f -c "truncate 100000" $SCRATCH_MNT/qwerty
+ $XFS_IO_PROG -f -c "truncate $((25 * $BLOCK_SIZE))" $SCRATCH_MNT/qwerty \
+ | _filter_xfs_io_blocks_modified
sync
# Test cloning a range from the sparse file to the bar file without
# increasing bar's size.
- $CLONER_PROG -s 4096 -d 0 -l 8192 $SCRATCH_MNT/qwerty $SCRATCH_MNT/bar
+ $CLONER_PROG -s $((1 * $BLOCK_SIZE)) -d 0 -l $((2 * $BLOCK_SIZE)) \
+ $SCRATCH_MNT/qwerty $SCRATCH_MNT/bar
- # First 8Kb of bar should now be zeroes.
- echo "6) Check that 8kb of the hole were cloned"
- od -t x1 $SCRATCH_MNT/bar
+ # First 2 blocks of bar should now be zeroes.
+ echo "6) Check that 2 blocks of the hole were cloned"
+ od -t x1 $SCRATCH_MNT/bar | _filter_od
# Test cloning a range from the sparse file to the end of the bar file.
- # The bar file currently has a size of 106496 bytes.
- $CLONER_PROG -s 0 -d 106496 -l 32768 $SCRATCH_MNT/qwerty \
+ # The bar file currently has 26 blocks.
+ $CLONER_PROG -s 0 -d $((26 * $BLOCK_SIZE)) -l $((8 * $BLOCK_SIZE)) $SCRATCH_MNT/qwerty \
$SCRATCH_MNT/bar
- # Verify bar's size increased to 106496 + 32768 bytes (136Kb), and its
- # last 32768 bytes are all zeroes.
- echo "7) Check that 32kb of the hole were cloned and the file size increased"
- od -t x1 $SCRATCH_MNT/bar
+ # Verify bar's size increased to 26 + 8 blocks, and its
+ # last 8 blocks are all zeroes.
+ echo "7) Check that 8 blocks of the hole were cloned and the file size increased"
+ od -t x1 $SCRATCH_MNT/bar | _filter_od
# Verify that there are no consistency errors.
_check_scratch_fs
diff --git a/tests/btrfs/055.out b/tests/btrfs/055.out
index d8d4893..2d29d6f 100644
--- a/tests/btrfs/055.out
+++ b/tests/btrfs/055.out
@@ -1,347 +1,337 @@
QA output created by 055
Testing without the NO_HOLES feature
-wrote 8192/8192 bytes at offset 0
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-wrote 8192/8192 bytes at offset 8192
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-wrote 8192/8192 bytes at offset 24576
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-wrote 8192/8192 bytes at offset 32768
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-wrote 98304/98304 bytes at offset 0
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
+Blocks modified: [0 - 1]
+Blocks modified: [2 - 3]
+Blocks modified: [6 - 7]
+Blocks modified: [8 - 9]
+Blocks modified: [0 - 23]
1) Check both extents and the hole were cloned
-0000000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+0 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
*
-0020000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0040000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
+4 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
*
-0060000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+6 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
*
-0300000
-2) Check half hole and one 8Kb extent were cloned
-0000000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+30
+2) Check half hole and the following 2 block extent were cloned
+0 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
*
-0020000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0040000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
+4 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
*
-0060000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+6 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
*
-0100000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0110000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
+11 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
*
-0130000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+13 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
*
-0300000
-3) Check that 2 extents of 8kb eacg and a 4kb hole were cloned
-0000000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+30
+3) Check that 2 extents of 2 blocks each and a hole of 1 block were cloned
+0 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
*
-0020000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0040000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
+4 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
*
-0060000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+6 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
*
-0100000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0110000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
+11 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
*
-0130000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+13 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
*
-0200000 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+20 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
*
-0220000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+22 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
*
-0240000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0250000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+25 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
*
-0300000
-4) Check that 4kb of 1 extent and 8Kb of an hole were cloned
-0000000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+30
+4) Check that a block of 1 extent and 2 blocks of a hole were cloned
+0 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
*
-0020000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0040000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
+4 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
*
-0060000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+6 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
*
-0100000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0110000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
+11 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
*
-0130000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+13 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
*
-0200000 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+20 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
*
-0220000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+22 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
*
-0240000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0250000 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
+25 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
*
-0260000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+26 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0300000
-5) Check that 4kb of 1 extent and 8Kb of an hole were cloned and file size increased
-0000000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+30
+5) Check that a block of 1 extent and 2 blocks of a hole were cloned and file size increased
+0 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
*
-0020000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0040000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
+4 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
*
-0060000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+6 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
*
-0100000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0110000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
+11 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
*
-0130000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+13 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
*
-0200000 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+20 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
*
-0220000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+22 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
*
-0240000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0250000 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
+25 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
*
-0260000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+26 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0270000 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
+27 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
*
-0300000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0320000
-6) Check that 8kb of the hole were cloned
-0000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+32
+6) Check that 2 blocks of the hole were cloned
+0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0040000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
+4 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
*
-0060000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+6 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
*
-0100000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0110000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
+11 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
*
-0130000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+13 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
*
-0200000 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+20 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
*
-0220000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+22 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
*
-0240000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0250000 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
+25 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
*
-0260000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+26 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0270000 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
+27 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
*
-0300000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0320000
-7) Check that 32kb of the hole were cloned and the file size increased
-0000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+32
+7) Check that 8 blocks of the hole were cloned and the file size increased
+0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0040000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
+4 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
*
-0060000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+6 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
*
-0100000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0110000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
+11 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
*
-0130000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+13 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
*
-0200000 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+20 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
*
-0220000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+22 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
*
-0240000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0250000 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
+25 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
*
-0260000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+26 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0270000 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
+27 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
*
-0300000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0420000
+42
Testing with the NO_HOLES feature enabled
-wrote 8192/8192 bytes at offset 0
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-wrote 8192/8192 bytes at offset 8192
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-wrote 8192/8192 bytes at offset 24576
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-wrote 8192/8192 bytes at offset 32768
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-wrote 98304/98304 bytes at offset 0
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
+Blocks modified: [0 - 1]
+Blocks modified: [2 - 3]
+Blocks modified: [6 - 7]
+Blocks modified: [8 - 9]
+Blocks modified: [0 - 23]
1) Check both extents and the hole were cloned
-0000000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+0 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
*
-0020000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0040000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
+4 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
*
-0060000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+6 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
*
-0300000
-2) Check half hole and one 8Kb extent were cloned
-0000000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+30
+2) Check half hole and the following 2 block extent were cloned
+0 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
*
-0020000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0040000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
+4 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
*
-0060000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+6 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
*
-0100000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0110000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
+11 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
*
-0130000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+13 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
*
-0300000
-3) Check that 2 extents of 8kb eacg and a 4kb hole were cloned
-0000000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+30
+3) Check that 2 extents of 2 blocks each and a hole of 1 block were cloned
+0 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
*
-0020000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0040000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
+4 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
*
-0060000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+6 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
*
-0100000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0110000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
+11 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
*
-0130000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+13 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
*
-0200000 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+20 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
*
-0220000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+22 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
*
-0240000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0250000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+25 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
*
-0300000
-4) Check that 4kb of 1 extent and 8Kb of an hole were cloned
-0000000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+30
+4) Check that a block of 1 extent and 2 blocks of a hole were cloned
+0 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
*
-0020000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0040000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
+4 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
*
-0060000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+6 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
*
-0100000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0110000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
+11 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
*
-0130000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+13 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
*
-0200000 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+20 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
*
-0220000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+22 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
*
-0240000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0250000 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
+25 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
*
-0260000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+26 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0300000
-5) Check that 4kb of 1 extent and 8Kb of an hole were cloned and file size increased
-0000000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+30
+5) Check that a block of 1 extent and 2 blocks of a hole were cloned and file size increased
+0 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
*
-0020000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0040000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
+4 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
*
-0060000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+6 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
*
-0100000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0110000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
+11 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
*
-0130000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+13 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
*
-0200000 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+20 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
*
-0220000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+22 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
*
-0240000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0250000 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
+25 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
*
-0260000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+26 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0270000 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
+27 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
*
-0300000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0320000
-6) Check that 8kb of the hole were cloned
-0000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+32
+6) Check that 2 blocks of the hole were cloned
+0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0040000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
+4 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
*
-0060000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+6 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
*
-0100000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0110000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
+11 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
*
-0130000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+13 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
*
-0200000 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+20 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
*
-0220000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+22 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
*
-0240000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0250000 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
+25 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
*
-0260000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+26 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0270000 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
+27 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
*
-0300000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0320000
-7) Check that 32kb of the hole were cloned and the file size increased
-0000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+32
+7) Check that 8 blocks of the hole were cloned and the file size increased
+0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0040000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
+4 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
*
-0060000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+6 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
*
-0100000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0110000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
+11 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
*
-0130000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+13 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
*
-0200000 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
+20 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
*
-0220000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+22 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
*
-0240000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0250000 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
+25 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
*
-0260000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+26 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0270000 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
+27 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
*
-0300000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0420000
+42
--
2.1.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH V2 3/5] Fix btrfs/055 to work on non-4k block sized filesystems
2015-11-30 10:16 ` [PATCH V2 3/5] Fix btrfs/055 " Chandan Rajendra
@ 2015-12-10 17:25 ` Filipe Manana
0 siblings, 0 replies; 11+ messages in thread
From: Filipe Manana @ 2015-12-10 17:25 UTC (permalink / raw)
To: Chandan Rajendra; +Cc: fstests, linux-btrfs@vger.kernel.org, chandan
On Mon, Nov 30, 2015 at 10:16 AM, Chandan Rajendra
<chandan@linux.vnet.ibm.com> wrote:
> This commit makes use of the new _filter_xfs_io_blocks_modified and _filter_od
> filtering functions to print information in terms of file blocks rather than
> file offset.
>
> Signed-off-by: Chandan Rajendra <chandan@linux.vnet.ibm.com>
Reviewed-by: Filipe Manana <fdmanana@suse.com>
Thanks!
> ---
> tests/btrfs/055 | 128 ++++++++++--------
> tests/btrfs/055.out | 378 +++++++++++++++++++++++++---------------------------
> 2 files changed, 259 insertions(+), 247 deletions(-)
>
> diff --git a/tests/btrfs/055 b/tests/btrfs/055
> index c0dd9ed..1f50850 100755
> --- a/tests/btrfs/055
> +++ b/tests/btrfs/055
> @@ -60,88 +60,110 @@ test_btrfs_clone_with_holes()
> _scratch_mkfs "$1" >/dev/null 2>&1
> _scratch_mount
>
> - # Create a file with 4 extents and 1 hole, all with a size of 8Kb each.
> - # The hole is in the range [16384, 24576[.
> - $XFS_IO_PROG -s -f -c "pwrite -S 0x01 -b 8192 0 8192" \
> - -c "pwrite -S 0x02 -b 8192 8192 8192" \
> - -c "pwrite -S 0x04 -b 8192 24576 8192" \
> - -c "pwrite -S 0x05 -b 8192 32768 8192" \
> - $SCRATCH_MNT/foo | _filter_xfs_io
> + BLOCK_SIZE=$(get_block_size $SCRATCH_MNT)
>
> - # Clone destination file, 1 extent of 96kb.
> - $XFS_IO_PROG -s -f -c "pwrite -S 0xff -b 98304 0 98304" \
> - $SCRATCH_MNT/bar | _filter_xfs_io
> + EXTENT_SIZE=$((2 * $BLOCK_SIZE))
>
> - # Clone 2nd extent, 8Kb hole and 3rd extent of foo into bar.
> - $CLONER_PROG -s 8192 -d 0 -l 24576 $SCRATCH_MNT/foo $SCRATCH_MNT/bar
> + OFFSET=0
> +
> + # Create a file with 4 extents and 1 hole, all with 2 blocks each.
> + # The hole is in the block range [4, 5[.
> + $XFS_IO_PROG -s -f -c "pwrite -S 0x01 -b $EXTENT_SIZE $OFFSET $EXTENT_SIZE" \
> + $SCRATCH_MNT/foo | _filter_xfs_io_blocks_modified
> +
> + OFFSET=$(($OFFSET + $EXTENT_SIZE))
> + $XFS_IO_PROG -s -f -c "pwrite -S 0x02 -b $EXTENT_SIZE $OFFSET $EXTENT_SIZE" \
> + $SCRATCH_MNT/foo | _filter_xfs_io_blocks_modified
> +
> + OFFSET=$(($OFFSET + 2 * $EXTENT_SIZE))
> + $XFS_IO_PROG -s -f -c "pwrite -S 0x04 -b $EXTENT_SIZE $OFFSET $EXTENT_SIZE" \
> + $SCRATCH_MNT/foo | _filter_xfs_io_blocks_modified
> +
> + OFFSET=$(($OFFSET + $EXTENT_SIZE))
> + $XFS_IO_PROG -s -f -c "pwrite -S 0x05 -b $EXTENT_SIZE $OFFSET $EXTENT_SIZE" \
> + $SCRATCH_MNT/foo | _filter_xfs_io_blocks_modified
> +
> + # Clone destination file, 1 extent of 24 blocks.
> + EXTENT_SIZE=$((24 * $BLOCK_SIZE))
> + $XFS_IO_PROG -s -f -c "pwrite -S 0xff -b $EXTENT_SIZE 0 $EXTENT_SIZE" \
> + $SCRATCH_MNT/bar | _filter_xfs_io_blocks_modified
> +
> + # Clone 2nd extent, 2-blocks sized hole and 3rd extent of foo into bar.
> + $CLONER_PROG -s $((2 * $BLOCK_SIZE)) -d 0 -l $((6 * $BLOCK_SIZE)) \
> + $SCRATCH_MNT/foo $SCRATCH_MNT/bar
>
> # Verify both extents and the hole were cloned.
> echo "1) Check both extents and the hole were cloned"
> - od -t x1 $SCRATCH_MNT/bar
> + od -t x1 $SCRATCH_MNT/bar | _filter_od
>
> - # Cloning range starts at the middle of an hole.
> - $CLONER_PROG -s 20480 -d 32768 -l 12288 $SCRATCH_MNT/foo \
> - $SCRATCH_MNT/bar
> + # Cloning range starts at the middle of a hole.
> + $CLONER_PROG -s $((5 * $BLOCK_SIZE)) -d $((8 * $BLOCK_SIZE)) \
> + -l $((3 * $BLOCK_SIZE)) $SCRATCH_MNT/foo $SCRATCH_MNT/bar
>
> - # Verify that half of the hole and the following 8Kb extent were cloned.
> - echo "2) Check half hole and one 8Kb extent were cloned"
> - od -t x1 $SCRATCH_MNT/bar
> + # Verify that half of the hole and the following 2 block extent were cloned.
> + echo "2) Check half hole and the following 2 block extent were cloned"
> + od -t x1 $SCRATCH_MNT/bar | _filter_od
>
> - # Cloning range ends at the middle of an hole.
> - $CLONER_PROG -s 0 -d 65536 -l 20480 $SCRATCH_MNT/foo $SCRATCH_MNT/bar
> + # Cloning range ends at the middle of a hole.
> + $CLONER_PROG -s 0 -d $((16 * $BLOCK_SIZE)) -l $((5 * $BLOCK_SIZE)) \
> + $SCRATCH_MNT/foo $SCRATCH_MNT/bar
>
> - # Verify that 2 extents of 8kb and a 4kb hole were cloned.
> - echo "3) Check that 2 extents of 8kb eacg and a 4kb hole were cloned"
> - od -t x1 $SCRATCH_MNT/bar
> + # Verify that 2 extents of 2 blocks size and a 1-block hole were cloned.
> + echo "3) Check that 2 extents of 2 blocks each and a hole of 1 block were cloned"
> + od -t x1 $SCRATCH_MNT/bar | _filter_od
>
> - # Create a 24Kb hole at the end of the source file (foo).
> - $XFS_IO_PROG -c "truncate 65536" $SCRATCH_MNT/foo
> + # Create a 6-block hole at the end of the source file (foo).
> + $XFS_IO_PROG -c "truncate $((16 * $BLOCK_SIZE))" $SCRATCH_MNT/foo \
> + | _filter_xfs_io_blocks_modified
> sync
>
> # Now clone a range that overlaps that hole at the end of the foo file.
> - # It should clone the last 4Kb of the extent at offset 32768 and the
> - # first 8kb of the 24kb hole at the end of foo.
> - $CLONER_PROG -s 36864 -d 86016 -l 12288 $SCRATCH_MNT/foo \
> - $SCRATCH_MNT/bar
> + # It should clone the 10th block and the first two blocks of the hole
> + # at the end of foo.
> + $CLONER_PROG -s $((9 * $BLOCK_SIZE)) -d $((21 * $BLOCK_SIZE)) \
> + -l $((3 * $BLOCK_SIZE)) $SCRATCH_MNT/foo $SCRATCH_MNT/bar
>
> - # Verify that the second half of the 8Kb extent at offset 32768 of foo
> - # and the first 8Kb of the 24kb hole of foo were cloned into bar.
> - echo "4) Check that 4kb of 1 extent and 8Kb of an hole were cloned"
> - od -t x1 $SCRATCH_MNT/bar
> + # Verify that the 9th block of foo and the first 2 blocks of the
> + # 6-block hole of foo were cloned into bar.
> + echo "4) Check that a block of 1 extent and 2 blocks of a hole were cloned"
> + od -t x1 $SCRATCH_MNT/bar | _filter_od
>
> # Clone the same range as before, but clone it into a different offset
> # of the target (bar) such that it increases the size of the target
> - # by 8Kb.
> - $CLONER_PROG -s 36864 -d 94208 -l 12288 $SCRATCH_MNT/foo \
> - $SCRATCH_MNT/bar
> + # by 2 blocks.
> + $CLONER_PROG -s $((9 * $BLOCK_SIZE)) -d $((23 * $BLOCK_SIZE)) \
> + -l $((3 * $BLOCK_SIZE)) $SCRATCH_MNT/foo $SCRATCH_MNT/bar
>
> - # Verify that the second half of the 8Kb extent at offset 32768 of foo
> - # and the first 8Kb of the 24kb hole of foo were cloned into bar at
> - # bar's offset 94208 and that bar's size increased by 8Kb.
> - echo "5) Check that 4kb of 1 extent and 8Kb of an hole were cloned and file size increased"
> - od -t x1 $SCRATCH_MNT/bar
> + # Verify that the 9th block of foo and the first 2 blocks of the 6-block
> + # hole of foo were cloned into bar at bar's 23rd block and that bar's
> + # size increased by 2 blocks.
> + echo "5) Check that a block of 1 extent and 2 blocks of a hole were" \
> + "cloned and file size increased"
> + od -t x1 $SCRATCH_MNT/bar | _filter_od
>
> # Create a new completely sparse file (no extents, it's a big hole).
> - $XFS_IO_PROG -f -c "truncate 100000" $SCRATCH_MNT/qwerty
> + $XFS_IO_PROG -f -c "truncate $((25 * $BLOCK_SIZE))" $SCRATCH_MNT/qwerty \
> + | _filter_xfs_io_blocks_modified
> sync
>
> # Test cloning a range from the sparse file to the bar file without
> # increasing bar's size.
> - $CLONER_PROG -s 4096 -d 0 -l 8192 $SCRATCH_MNT/qwerty $SCRATCH_MNT/bar
> + $CLONER_PROG -s $((1 * $BLOCK_SIZE)) -d 0 -l $((2 * $BLOCK_SIZE)) \
> + $SCRATCH_MNT/qwerty $SCRATCH_MNT/bar
>
> - # First 8Kb of bar should now be zeroes.
> - echo "6) Check that 8kb of the hole were cloned"
> - od -t x1 $SCRATCH_MNT/bar
> + # First 2 blocks of bar should now be zeroes.
> + echo "6) Check that 2 blocks of the hole were cloned"
> + od -t x1 $SCRATCH_MNT/bar | _filter_od
>
> # Test cloning a range from the sparse file to the end of the bar file.
> - # The bar file currently has a size of 106496 bytes.
> - $CLONER_PROG -s 0 -d 106496 -l 32768 $SCRATCH_MNT/qwerty \
> + # The bar file currently has 26 blocks.
> + $CLONER_PROG -s 0 -d $((26 * $BLOCK_SIZE)) -l $((8 * $BLOCK_SIZE)) $SCRATCH_MNT/qwerty \
> $SCRATCH_MNT/bar
>
> - # Verify bar's size increased to 106496 + 32768 bytes (136Kb), and its
> - # last 32768 bytes are all zeroes.
> - echo "7) Check that 32kb of the hole were cloned and the file size increased"
> - od -t x1 $SCRATCH_MNT/bar
> + # Verify bar's size increased to 26 + 8 blocks, and its
> + # last 8 blocks are all zeroes.
> + echo "7) Check that 8 blocks of the hole were cloned and the file size increased"
> + od -t x1 $SCRATCH_MNT/bar | _filter_od
>
> # Verify that there are no consistency errors.
> _check_scratch_fs
> diff --git a/tests/btrfs/055.out b/tests/btrfs/055.out
> index d8d4893..2d29d6f 100644
> --- a/tests/btrfs/055.out
> +++ b/tests/btrfs/055.out
> @@ -1,347 +1,337 @@
> QA output created by 055
> Testing without the NO_HOLES feature
> -wrote 8192/8192 bytes at offset 0
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -wrote 8192/8192 bytes at offset 8192
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -wrote 8192/8192 bytes at offset 24576
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -wrote 8192/8192 bytes at offset 32768
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -wrote 98304/98304 bytes at offset 0
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> +Blocks modified: [0 - 1]
> +Blocks modified: [2 - 3]
> +Blocks modified: [6 - 7]
> +Blocks modified: [8 - 9]
> +Blocks modified: [0 - 23]
> 1) Check both extents and the hole were cloned
> -0000000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> +0 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> *
> -0020000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0040000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> +4 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> *
> -0060000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> +6 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> *
> -0300000
> -2) Check half hole and one 8Kb extent were cloned
> -0000000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> +30
> +2) Check half hole and the following 2 block extent were cloned
> +0 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> *
> -0020000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0040000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> +4 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> *
> -0060000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> +6 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> *
> -0100000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0110000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> +11 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> *
> -0130000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> +13 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> *
> -0300000
> -3) Check that 2 extents of 8kb eacg and a 4kb hole were cloned
> -0000000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> +30
> +3) Check that 2 extents of 2 blocks each and a hole of 1 block were cloned
> +0 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> *
> -0020000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0040000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> +4 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> *
> -0060000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> +6 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> *
> -0100000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0110000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> +11 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> *
> -0130000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> +13 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> *
> -0200000 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
> +20 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
> *
> -0220000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> +22 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> *
> -0240000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0250000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> +25 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> *
> -0300000
> -4) Check that 4kb of 1 extent and 8Kb of an hole were cloned
> -0000000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> +30
> +4) Check that a block of 1 extent and 2 blocks of a hole were cloned
> +0 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> *
> -0020000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0040000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> +4 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> *
> -0060000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> +6 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> *
> -0100000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0110000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> +11 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> *
> -0130000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> +13 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> *
> -0200000 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
> +20 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
> *
> -0220000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> +22 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> *
> -0240000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0250000 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
> +25 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
> *
> -0260000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +26 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0300000
> -5) Check that 4kb of 1 extent and 8Kb of an hole were cloned and file size increased
> -0000000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> +30
> +5) Check that a block of 1 extent and 2 blocks of a hole were cloned and file size increased
> +0 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> *
> -0020000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0040000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> +4 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> *
> -0060000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> +6 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> *
> -0100000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0110000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> +11 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> *
> -0130000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> +13 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> *
> -0200000 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
> +20 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
> *
> -0220000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> +22 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> *
> -0240000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0250000 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
> +25 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
> *
> -0260000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +26 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0270000 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
> +27 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
> *
> -0300000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0320000
> -6) Check that 8kb of the hole were cloned
> -0000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +32
> +6) Check that 2 blocks of the hole were cloned
> +0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0040000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> +4 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> *
> -0060000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> +6 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> *
> -0100000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0110000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> +11 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> *
> -0130000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> +13 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> *
> -0200000 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
> +20 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
> *
> -0220000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> +22 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> *
> -0240000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0250000 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
> +25 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
> *
> -0260000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +26 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0270000 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
> +27 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
> *
> -0300000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0320000
> -7) Check that 32kb of the hole were cloned and the file size increased
> -0000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +32
> +7) Check that 8 blocks of the hole were cloned and the file size increased
> +0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0040000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> +4 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> *
> -0060000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> +6 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> *
> -0100000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0110000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> +11 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> *
> -0130000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> +13 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> *
> -0200000 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
> +20 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
> *
> -0220000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> +22 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> *
> -0240000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0250000 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
> +25 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
> *
> -0260000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +26 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0270000 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
> +27 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
> *
> -0300000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0420000
> +42
> Testing with the NO_HOLES feature enabled
> -wrote 8192/8192 bytes at offset 0
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -wrote 8192/8192 bytes at offset 8192
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -wrote 8192/8192 bytes at offset 24576
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -wrote 8192/8192 bytes at offset 32768
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -wrote 98304/98304 bytes at offset 0
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> +Blocks modified: [0 - 1]
> +Blocks modified: [2 - 3]
> +Blocks modified: [6 - 7]
> +Blocks modified: [8 - 9]
> +Blocks modified: [0 - 23]
> 1) Check both extents and the hole were cloned
> -0000000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> +0 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> *
> -0020000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0040000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> +4 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> *
> -0060000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> +6 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> *
> -0300000
> -2) Check half hole and one 8Kb extent were cloned
> -0000000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> +30
> +2) Check half hole and the following 2 block extent were cloned
> +0 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> *
> -0020000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0040000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> +4 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> *
> -0060000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> +6 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> *
> -0100000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0110000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> +11 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> *
> -0130000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> +13 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> *
> -0300000
> -3) Check that 2 extents of 8kb eacg and a 4kb hole were cloned
> -0000000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> +30
> +3) Check that 2 extents of 2 blocks each and a hole of 1 block were cloned
> +0 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> *
> -0020000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0040000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> +4 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> *
> -0060000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> +6 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> *
> -0100000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0110000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> +11 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> *
> -0130000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> +13 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> *
> -0200000 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
> +20 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
> *
> -0220000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> +22 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> *
> -0240000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0250000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> +25 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> *
> -0300000
> -4) Check that 4kb of 1 extent and 8Kb of an hole were cloned
> -0000000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> +30
> +4) Check that a block of 1 extent and 2 blocks of a hole were cloned
> +0 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> *
> -0020000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0040000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> +4 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> *
> -0060000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> +6 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> *
> -0100000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0110000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> +11 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> *
> -0130000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> +13 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> *
> -0200000 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
> +20 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
> *
> -0220000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> +22 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> *
> -0240000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0250000 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
> +25 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
> *
> -0260000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +26 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0300000
> -5) Check that 4kb of 1 extent and 8Kb of an hole were cloned and file size increased
> -0000000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> +30
> +5) Check that a block of 1 extent and 2 blocks of a hole were cloned and file size increased
> +0 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> *
> -0020000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0040000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> +4 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> *
> -0060000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> +6 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> *
> -0100000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0110000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> +11 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> *
> -0130000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> +13 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> *
> -0200000 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
> +20 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
> *
> -0220000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> +22 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> *
> -0240000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0250000 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
> +25 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
> *
> -0260000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +26 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0270000 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
> +27 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
> *
> -0300000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0320000
> -6) Check that 8kb of the hole were cloned
> -0000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +32
> +6) Check that 2 blocks of the hole were cloned
> +0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0040000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> +4 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> *
> -0060000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> +6 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> *
> -0100000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0110000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> +11 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> *
> -0130000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> +13 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> *
> -0200000 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
> +20 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
> *
> -0220000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> +22 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> *
> -0240000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0250000 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
> +25 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
> *
> -0260000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +26 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0270000 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
> +27 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
> *
> -0300000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0320000
> -7) Check that 32kb of the hole were cloned and the file size increased
> -0000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +32
> +7) Check that 8 blocks of the hole were cloned and the file size increased
> +0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0040000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> +4 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> *
> -0060000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> +6 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> *
> -0100000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0110000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> +11 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> *
> -0130000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> +13 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> *
> -0200000 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
> +20 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
> *
> -0220000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> +22 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> *
> -0240000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +24 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0250000 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
> +25 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
> *
> -0260000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +26 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0270000 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
> +27 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
> *
> -0300000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0420000
> +42
> --
> 2.1.0
>
--
Filipe David Manana,
"Reasonable men adapt themselves to the world.
Unreasonable men adapt the world to themselves.
That's why all progress depends on unreasonable men."
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH V2 4/5] Fix btrfs/056 to work on non-4k block sized filesystems
2015-11-30 10:16 [PATCH V2 0/5] Fix Btrfs tests to work on non-4k block sized fs instances Chandan Rajendra
` (2 preceding siblings ...)
2015-11-30 10:16 ` [PATCH V2 3/5] Fix btrfs/055 " Chandan Rajendra
@ 2015-11-30 10:16 ` Chandan Rajendra
2015-12-10 17:26 ` Filipe Manana
2015-11-30 10:17 ` [PATCH V2 5/5] Fix btrfs/096 " Chandan Rajendra
4 siblings, 1 reply; 11+ messages in thread
From: Chandan Rajendra @ 2015-11-30 10:16 UTC (permalink / raw)
To: fstests; +Cc: Chandan Rajendra, linux-btrfs, fdmanana, chandan
This commit makes use of the new _filter_xfs_io_blocks_modified and _filter_od
filtering functions to print information in terms of file blocks rather than
file offset.
Signed-off-by: Chandan Rajendra <chandan@linux.vnet.ibm.com>
---
tests/btrfs/056 | 51 ++++++++++--------
tests/btrfs/056.out | 152 +++++++++++++++++++++-------------------------------
2 files changed, 90 insertions(+), 113 deletions(-)
diff --git a/tests/btrfs/056 b/tests/btrfs/056
index 66a59b8..6dc3bfd 100755
--- a/tests/btrfs/056
+++ b/tests/btrfs/056
@@ -68,33 +68,42 @@ test_btrfs_clone_fsync_log_recover()
MOUNT_OPTIONS="$MOUNT_OPTIONS $2"
_mount_flakey
- # Create a file with 4 extents and 1 hole, all with a size of 8Kb each.
- # The hole is in the range [16384, 24576[.
- $XFS_IO_PROG -s -f -c "pwrite -S 0x01 -b 8192 0 8192" \
- -c "pwrite -S 0x02 -b 8192 8192 8192" \
- -c "pwrite -S 0x04 -b 8192 24576 8192" \
- -c "pwrite -S 0x05 -b 8192 32768 8192" \
- $SCRATCH_MNT/foo | _filter_xfs_io
-
- # Clone destination file, 1 extent of 96kb.
- $XFS_IO_PROG -f -c "pwrite -S 0xff -b 98304 0 98304" -c "fsync" \
- $SCRATCH_MNT/bar | _filter_xfs_io
-
- # Clone second half of the 2nd extent, the 8kb hole, the 3rd extent
+ BLOCK_SIZE=$(get_block_size $SCRATCH_MNT)
+
+ EXTENT_SIZE=$((2 * $BLOCK_SIZE))
+
+ # Create a file with 4 extents and 1 hole, all with a size of
+ # 2 blocks each.
+ # The hole is in the block range [4, 5].
+ $XFS_IO_PROG -s -f -c "pwrite -S 0x01 -b $EXTENT_SIZE 0 $EXTENT_SIZE" \
+ -c "pwrite -S 0x02 -b $EXTENT_SIZE $((2 * $BLOCK_SIZE)) $EXTENT_SIZE" \
+ -c "pwrite -S 0x04 -b $EXTENT_SIZE $((6 * $BLOCK_SIZE)) $EXTENT_SIZE" \
+ -c "pwrite -S 0x05 -b $EXTENT_SIZE $((8 * $BLOCK_SIZE)) $EXTENT_SIZE" \
+ $SCRATCH_MNT/foo | _filter_xfs_io_blocks_modified
+
+ # Clone destination file, 1 extent of 24 blocks.
+ $XFS_IO_PROG -f -c "pwrite -S 0xff -b $((24 * $BLOCK_SIZE)) 0 $((24 * $BLOCK_SIZE))" \
+ -c "fsync" $SCRATCH_MNT/bar | _filter_xfs_io_blocks_modified
+
+ # Clone second half of the 2nd extent, the 2 block hole, the 3rd extent
# and the first half of the 4th extent into file bar.
- $CLONER_PROG -s 12288 -d 0 -l 24576 $SCRATCH_MNT/foo $SCRATCH_MNT/bar
+ $CLONER_PROG -s $((3 * $BLOCK_SIZE)) -d 0 -l $((6 * $BLOCK_SIZE)) \
+ $SCRATCH_MNT/foo $SCRATCH_MNT/bar
$XFS_IO_PROG -c "fsync" $SCRATCH_MNT/bar
# Test small files too consisting of 1 inline extent
- $XFS_IO_PROG -f -c "pwrite -S 0x00 -b 3500 0 3500" -c "fsync" \
- $SCRATCH_MNT/foo2 | _filter_xfs_io
+ EXTENT_SIZE=$(($BLOCK_SIZE - 48))
+ $XFS_IO_PROG -f -c "pwrite -S 0x00 -b $EXTENT_SIZE 0 $EXTENT_SIZE" -c "fsync" \
+ $SCRATCH_MNT/foo2 | _filter_xfs_io_blocks_modified
- $XFS_IO_PROG -f -c "pwrite -S 0xcc -b 1000 0 1000" -c "fsync" \
- $SCRATCH_MNT/bar2 | _filter_xfs_io
+ EXTENT_SIZE=$(($BLOCK_SIZE - 1048))
+ $XFS_IO_PROG -f -c "pwrite -S 0xcc -b $EXTENT_SIZE 0 $EXTENT_SIZE" -c "fsync" \
+ $SCRATCH_MNT/bar2 | _filter_xfs_io_blocks_modified
# Clone the entire foo2 file into bar2, overwriting all data in bar2
# and increasing its size.
- $CLONER_PROG -s 0 -d 0 -l 3500 $SCRATCH_MNT/foo2 $SCRATCH_MNT/bar2
+ EXTENT_SIZE=$(($BLOCK_SIZE - 48))
+ $CLONER_PROG -s 0 -d 0 -l $EXTENT_SIZE $SCRATCH_MNT/foo2 $SCRATCH_MNT/bar2
$XFS_IO_PROG -c "fsync" $SCRATCH_MNT/bar2
_flakey_drop_and_remount yes
@@ -102,10 +111,10 @@ test_btrfs_clone_fsync_log_recover()
# Verify the cloned range was persisted by fsync and the log recovery
# code did its work well.
echo "Verifying file bar content"
- od -t x1 $SCRATCH_MNT/bar
+ od -t x1 $SCRATCH_MNT/bar | _filter_od
echo "Verifying file bar2 content"
- od -t x1 $SCRATCH_MNT/bar2
+ od -t x1 $SCRATCH_MNT/bar2 | _filter_od
_unmount_flakey
diff --git a/tests/btrfs/056.out b/tests/btrfs/056.out
index 1b77ae3..c4c6b2c 100644
--- a/tests/btrfs/056.out
+++ b/tests/btrfs/056.out
@@ -1,129 +1,97 @@
QA output created by 056
Testing without the NO_HOLES feature
-wrote 8192/8192 bytes at offset 0
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-wrote 8192/8192 bytes at offset 8192
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-wrote 8192/8192 bytes at offset 24576
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-wrote 8192/8192 bytes at offset 32768
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-wrote 98304/98304 bytes at offset 0
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-wrote 3500/3500 bytes at offset 0
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-wrote 1000/1000 bytes at offset 0
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
+Blocks modified: [0 - 1]
+Blocks modified: [2 - 3]
+Blocks modified: [6 - 7]
+Blocks modified: [8 - 9]
+Blocks modified: [0 - 23]
+Blocks modified: [0 - 0]
+Blocks modified: [0 - 0]
Verifying file bar content
-0000000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+0 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
*
-0010000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0030000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
+3 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
*
-0050000 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
+5 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
*
-0060000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+6 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
*
-0300000
+30
Verifying file bar2 content
-0000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0006640 00 00 00 00 00 00 00 00 00 00 00 00
-0006654
+0
Testing without the NO_HOLES feature and compression (lzo)
-wrote 8192/8192 bytes at offset 0
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-wrote 8192/8192 bytes at offset 8192
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-wrote 8192/8192 bytes at offset 24576
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-wrote 8192/8192 bytes at offset 32768
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-wrote 98304/98304 bytes at offset 0
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-wrote 3500/3500 bytes at offset 0
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-wrote 1000/1000 bytes at offset 0
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
+Blocks modified: [0 - 1]
+Blocks modified: [2 - 3]
+Blocks modified: [6 - 7]
+Blocks modified: [8 - 9]
+Blocks modified: [0 - 23]
+Blocks modified: [0 - 0]
+Blocks modified: [0 - 0]
Verifying file bar content
-0000000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+0 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
*
-0010000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0030000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
+3 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
*
-0050000 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
+5 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
*
-0060000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+6 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
*
-0300000
+30
Verifying file bar2 content
-0000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0006640 00 00 00 00 00 00 00 00 00 00 00 00
-0006654
+0
Testing with the NO_HOLES feature enabled
-wrote 8192/8192 bytes at offset 0
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-wrote 8192/8192 bytes at offset 8192
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-wrote 8192/8192 bytes at offset 24576
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-wrote 8192/8192 bytes at offset 32768
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-wrote 98304/98304 bytes at offset 0
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-wrote 3500/3500 bytes at offset 0
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-wrote 1000/1000 bytes at offset 0
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
+Blocks modified: [0 - 1]
+Blocks modified: [2 - 3]
+Blocks modified: [6 - 7]
+Blocks modified: [8 - 9]
+Blocks modified: [0 - 23]
+Blocks modified: [0 - 0]
+Blocks modified: [0 - 0]
Verifying file bar content
-0000000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+0 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
*
-0010000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0030000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
+3 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
*
-0050000 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
+5 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
*
-0060000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+6 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
*
-0300000
+30
Verifying file bar2 content
-0000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0006640 00 00 00 00 00 00 00 00 00 00 00 00
-0006654
+0
Testing with the NO_HOLES feature enabled and compression (lzo)
-wrote 8192/8192 bytes at offset 0
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-wrote 8192/8192 bytes at offset 8192
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-wrote 8192/8192 bytes at offset 24576
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-wrote 8192/8192 bytes at offset 32768
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-wrote 98304/98304 bytes at offset 0
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-wrote 3500/3500 bytes at offset 0
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-wrote 1000/1000 bytes at offset 0
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
+Blocks modified: [0 - 1]
+Blocks modified: [2 - 3]
+Blocks modified: [6 - 7]
+Blocks modified: [8 - 9]
+Blocks modified: [0 - 23]
+Blocks modified: [0 - 0]
+Blocks modified: [0 - 0]
Verifying file bar content
-0000000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
+0 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
*
-0010000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0030000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
+3 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
*
-0050000 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
+5 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
*
-0060000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
+6 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
*
-0300000
+30
Verifying file bar2 content
-0000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
-0006640 00 00 00 00 00 00 00 00 00 00 00 00
-0006654
+0
--
2.1.0
^ permalink raw reply related [flat|nested] 11+ messages in thread* Re: [PATCH V2 4/5] Fix btrfs/056 to work on non-4k block sized filesystems
2015-11-30 10:16 ` [PATCH V2 4/5] Fix btrfs/056 " Chandan Rajendra
@ 2015-12-10 17:26 ` Filipe Manana
0 siblings, 0 replies; 11+ messages in thread
From: Filipe Manana @ 2015-12-10 17:26 UTC (permalink / raw)
To: Chandan Rajendra; +Cc: fstests, linux-btrfs@vger.kernel.org, chandan
On Mon, Nov 30, 2015 at 10:16 AM, Chandan Rajendra
<chandan@linux.vnet.ibm.com> wrote:
> This commit makes use of the new _filter_xfs_io_blocks_modified and _filter_od
> filtering functions to print information in terms of file blocks rather than
> file offset.
>
> Signed-off-by: Chandan Rajendra <chandan@linux.vnet.ibm.com>
Reviewed-by: Filipe Manana <fdmanana@suse.com>
Thanks!
> ---
> tests/btrfs/056 | 51 ++++++++++--------
> tests/btrfs/056.out | 152 +++++++++++++++++++++-------------------------------
> 2 files changed, 90 insertions(+), 113 deletions(-)
>
> diff --git a/tests/btrfs/056 b/tests/btrfs/056
> index 66a59b8..6dc3bfd 100755
> --- a/tests/btrfs/056
> +++ b/tests/btrfs/056
> @@ -68,33 +68,42 @@ test_btrfs_clone_fsync_log_recover()
> MOUNT_OPTIONS="$MOUNT_OPTIONS $2"
> _mount_flakey
>
> - # Create a file with 4 extents and 1 hole, all with a size of 8Kb each.
> - # The hole is in the range [16384, 24576[.
> - $XFS_IO_PROG -s -f -c "pwrite -S 0x01 -b 8192 0 8192" \
> - -c "pwrite -S 0x02 -b 8192 8192 8192" \
> - -c "pwrite -S 0x04 -b 8192 24576 8192" \
> - -c "pwrite -S 0x05 -b 8192 32768 8192" \
> - $SCRATCH_MNT/foo | _filter_xfs_io
> -
> - # Clone destination file, 1 extent of 96kb.
> - $XFS_IO_PROG -f -c "pwrite -S 0xff -b 98304 0 98304" -c "fsync" \
> - $SCRATCH_MNT/bar | _filter_xfs_io
> -
> - # Clone second half of the 2nd extent, the 8kb hole, the 3rd extent
> + BLOCK_SIZE=$(get_block_size $SCRATCH_MNT)
> +
> + EXTENT_SIZE=$((2 * $BLOCK_SIZE))
> +
> + # Create a file with 4 extents and 1 hole, all with a size of
> + # 2 blocks each.
> + # The hole is in the block range [4, 5].
> + $XFS_IO_PROG -s -f -c "pwrite -S 0x01 -b $EXTENT_SIZE 0 $EXTENT_SIZE" \
> + -c "pwrite -S 0x02 -b $EXTENT_SIZE $((2 * $BLOCK_SIZE)) $EXTENT_SIZE" \
> + -c "pwrite -S 0x04 -b $EXTENT_SIZE $((6 * $BLOCK_SIZE)) $EXTENT_SIZE" \
> + -c "pwrite -S 0x05 -b $EXTENT_SIZE $((8 * $BLOCK_SIZE)) $EXTENT_SIZE" \
> + $SCRATCH_MNT/foo | _filter_xfs_io_blocks_modified
> +
> + # Clone destination file, 1 extent of 24 blocks.
> + $XFS_IO_PROG -f -c "pwrite -S 0xff -b $((24 * $BLOCK_SIZE)) 0 $((24 * $BLOCK_SIZE))" \
> + -c "fsync" $SCRATCH_MNT/bar | _filter_xfs_io_blocks_modified
> +
> + # Clone second half of the 2nd extent, the 2 block hole, the 3rd extent
> # and the first half of the 4th extent into file bar.
> - $CLONER_PROG -s 12288 -d 0 -l 24576 $SCRATCH_MNT/foo $SCRATCH_MNT/bar
> + $CLONER_PROG -s $((3 * $BLOCK_SIZE)) -d 0 -l $((6 * $BLOCK_SIZE)) \
> + $SCRATCH_MNT/foo $SCRATCH_MNT/bar
> $XFS_IO_PROG -c "fsync" $SCRATCH_MNT/bar
>
> # Test small files too consisting of 1 inline extent
> - $XFS_IO_PROG -f -c "pwrite -S 0x00 -b 3500 0 3500" -c "fsync" \
> - $SCRATCH_MNT/foo2 | _filter_xfs_io
> + EXTENT_SIZE=$(($BLOCK_SIZE - 48))
> + $XFS_IO_PROG -f -c "pwrite -S 0x00 -b $EXTENT_SIZE 0 $EXTENT_SIZE" -c "fsync" \
> + $SCRATCH_MNT/foo2 | _filter_xfs_io_blocks_modified
>
> - $XFS_IO_PROG -f -c "pwrite -S 0xcc -b 1000 0 1000" -c "fsync" \
> - $SCRATCH_MNT/bar2 | _filter_xfs_io
> + EXTENT_SIZE=$(($BLOCK_SIZE - 1048))
> + $XFS_IO_PROG -f -c "pwrite -S 0xcc -b $EXTENT_SIZE 0 $EXTENT_SIZE" -c "fsync" \
> + $SCRATCH_MNT/bar2 | _filter_xfs_io_blocks_modified
>
> # Clone the entire foo2 file into bar2, overwriting all data in bar2
> # and increasing its size.
> - $CLONER_PROG -s 0 -d 0 -l 3500 $SCRATCH_MNT/foo2 $SCRATCH_MNT/bar2
> + EXTENT_SIZE=$(($BLOCK_SIZE - 48))
> + $CLONER_PROG -s 0 -d 0 -l $EXTENT_SIZE $SCRATCH_MNT/foo2 $SCRATCH_MNT/bar2
> $XFS_IO_PROG -c "fsync" $SCRATCH_MNT/bar2
>
> _flakey_drop_and_remount yes
> @@ -102,10 +111,10 @@ test_btrfs_clone_fsync_log_recover()
> # Verify the cloned range was persisted by fsync and the log recovery
> # code did its work well.
> echo "Verifying file bar content"
> - od -t x1 $SCRATCH_MNT/bar
> + od -t x1 $SCRATCH_MNT/bar | _filter_od
>
> echo "Verifying file bar2 content"
> - od -t x1 $SCRATCH_MNT/bar2
> + od -t x1 $SCRATCH_MNT/bar2 | _filter_od
>
> _unmount_flakey
>
> diff --git a/tests/btrfs/056.out b/tests/btrfs/056.out
> index 1b77ae3..c4c6b2c 100644
> --- a/tests/btrfs/056.out
> +++ b/tests/btrfs/056.out
> @@ -1,129 +1,97 @@
> QA output created by 056
> Testing without the NO_HOLES feature
> -wrote 8192/8192 bytes at offset 0
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -wrote 8192/8192 bytes at offset 8192
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -wrote 8192/8192 bytes at offset 24576
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -wrote 8192/8192 bytes at offset 32768
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -wrote 98304/98304 bytes at offset 0
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -wrote 3500/3500 bytes at offset 0
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -wrote 1000/1000 bytes at offset 0
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> +Blocks modified: [0 - 1]
> +Blocks modified: [2 - 3]
> +Blocks modified: [6 - 7]
> +Blocks modified: [8 - 9]
> +Blocks modified: [0 - 23]
> +Blocks modified: [0 - 0]
> +Blocks modified: [0 - 0]
> Verifying file bar content
> -0000000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> +0 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> *
> -0010000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0030000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> +3 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> *
> -0050000 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
> +5 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
> *
> -0060000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> +6 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> *
> -0300000
> +30
> Verifying file bar2 content
> -0000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0006640 00 00 00 00 00 00 00 00 00 00 00 00
> -0006654
> +0
> Testing without the NO_HOLES feature and compression (lzo)
> -wrote 8192/8192 bytes at offset 0
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -wrote 8192/8192 bytes at offset 8192
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -wrote 8192/8192 bytes at offset 24576
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -wrote 8192/8192 bytes at offset 32768
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -wrote 98304/98304 bytes at offset 0
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -wrote 3500/3500 bytes at offset 0
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -wrote 1000/1000 bytes at offset 0
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> +Blocks modified: [0 - 1]
> +Blocks modified: [2 - 3]
> +Blocks modified: [6 - 7]
> +Blocks modified: [8 - 9]
> +Blocks modified: [0 - 23]
> +Blocks modified: [0 - 0]
> +Blocks modified: [0 - 0]
> Verifying file bar content
> -0000000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> +0 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> *
> -0010000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0030000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> +3 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> *
> -0050000 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
> +5 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
> *
> -0060000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> +6 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> *
> -0300000
> +30
> Verifying file bar2 content
> -0000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0006640 00 00 00 00 00 00 00 00 00 00 00 00
> -0006654
> +0
> Testing with the NO_HOLES feature enabled
> -wrote 8192/8192 bytes at offset 0
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -wrote 8192/8192 bytes at offset 8192
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -wrote 8192/8192 bytes at offset 24576
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -wrote 8192/8192 bytes at offset 32768
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -wrote 98304/98304 bytes at offset 0
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -wrote 3500/3500 bytes at offset 0
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -wrote 1000/1000 bytes at offset 0
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> +Blocks modified: [0 - 1]
> +Blocks modified: [2 - 3]
> +Blocks modified: [6 - 7]
> +Blocks modified: [8 - 9]
> +Blocks modified: [0 - 23]
> +Blocks modified: [0 - 0]
> +Blocks modified: [0 - 0]
> Verifying file bar content
> -0000000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> +0 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> *
> -0010000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0030000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> +3 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> *
> -0050000 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
> +5 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
> *
> -0060000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> +6 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> *
> -0300000
> +30
> Verifying file bar2 content
> -0000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0006640 00 00 00 00 00 00 00 00 00 00 00 00
> -0006654
> +0
> Testing with the NO_HOLES feature enabled and compression (lzo)
> -wrote 8192/8192 bytes at offset 0
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -wrote 8192/8192 bytes at offset 8192
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -wrote 8192/8192 bytes at offset 24576
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -wrote 8192/8192 bytes at offset 32768
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -wrote 98304/98304 bytes at offset 0
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -wrote 3500/3500 bytes at offset 0
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -wrote 1000/1000 bytes at offset 0
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> +Blocks modified: [0 - 1]
> +Blocks modified: [2 - 3]
> +Blocks modified: [6 - 7]
> +Blocks modified: [8 - 9]
> +Blocks modified: [0 - 23]
> +Blocks modified: [0 - 0]
> +Blocks modified: [0 - 0]
> Verifying file bar content
> -0000000 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> +0 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02 02
> *
> -0010000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0030000 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> +3 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04 04
> *
> -0050000 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
> +5 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
> *
> -0060000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> +6 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
> *
> -0300000
> +30
> Verifying file bar2 content
> -0000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> +0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> *
> -0006640 00 00 00 00 00 00 00 00 00 00 00 00
> -0006654
> +0
> --
> 2.1.0
>
--
Filipe David Manana,
"Reasonable men adapt themselves to the world.
Unreasonable men adapt the world to themselves.
That's why all progress depends on unreasonable men."
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH V2 5/5] Fix btrfs/096 to work on non-4k block sized filesystems
2015-11-30 10:16 [PATCH V2 0/5] Fix Btrfs tests to work on non-4k block sized fs instances Chandan Rajendra
` (3 preceding siblings ...)
2015-11-30 10:16 ` [PATCH V2 4/5] Fix btrfs/056 " Chandan Rajendra
@ 2015-11-30 10:17 ` Chandan Rajendra
2015-12-10 17:25 ` Filipe Manana
4 siblings, 1 reply; 11+ messages in thread
From: Chandan Rajendra @ 2015-11-30 10:17 UTC (permalink / raw)
To: fstests; +Cc: Chandan Rajendra, linux-btrfs, fdmanana, chandan
This commit makes use of the new _filter_xfs_io_blocks_modified filtering
function to print information in terms of file blocks rather than file
offset.
Signed-off-by: Chandan Rajendra <chandan@linux.vnet.ibm.com>
---
tests/btrfs/096 | 45 +++++++++++++++++++++++++--------------------
tests/btrfs/096.out | 15 +++++----------
2 files changed, 30 insertions(+), 30 deletions(-)
diff --git a/tests/btrfs/096 b/tests/btrfs/096
index f5b3a7f..896a209 100755
--- a/tests/btrfs/096
+++ b/tests/btrfs/096
@@ -51,30 +51,35 @@ rm -f $seqres.full
_scratch_mkfs >>$seqres.full 2>&1
_scratch_mount
-# Create our test files. File foo has the same 2K of data at offset 4K as file
-# bar has at its offset 0.
-$XFS_IO_PROG -f -s -c "pwrite -S 0xaa 0 4K" \
- -c "pwrite -S 0xbb 4k 2K" \
- -c "pwrite -S 0xcc 8K 4K" \
- $SCRATCH_MNT/foo | _filter_xfs_io
+BLOCK_SIZE=$(get_block_size $SCRATCH_MNT)
-# File bar consists of a single inline extent (2K size).
-$XFS_IO_PROG -f -s -c "pwrite -S 0xbb 0 2K" \
- $SCRATCH_MNT/bar | _filter_xfs_io
+# Create our test files. File foo has the same 2k of data at offset $BLOCK_SIZE
+# as file bar has at its offset 0.
+$XFS_IO_PROG -f -s -c "pwrite -S 0xaa 0 $BLOCK_SIZE" \
+ -c "pwrite -S 0xbb $BLOCK_SIZE 2k" \
+ -c "pwrite -S 0xcc $(($BLOCK_SIZE * 2)) $BLOCK_SIZE" \
+ $SCRATCH_MNT/foo | _filter_xfs_io_blocks_modified
-# Now call the clone ioctl to clone the extent of file bar into file foo at its
-# offset 4K. This made file foo have an inline extent at offset 4K, something
-# which the btrfs code can not deal with in future IO operations because all
-# inline extents are supposed to start at an offset of 0, resulting in all sorts
-# of chaos.
-# So here we validate that the clone ioctl returns an EOPNOTSUPP, which is what
-# it returns for other cases dealing with inlined extents.
-$CLONER_PROG -s 0 -d $((4 * 1024)) -l $((2 * 1024)) \
+# File bar consists of a single inline extent (2k in size).
+$XFS_IO_PROG -f -s -c "pwrite -S 0xbb 0 2k" \
+ $SCRATCH_MNT/bar | _filter_xfs_io_blocks_modified
+
+# Now call the clone ioctl to clone the extent of file bar into file
+# foo at its $BLOCK_SIZE offset. This made file foo have an inline
+# extent at offset $BLOCK_SIZE, something which the btrfs code can not
+# deal with in future IO operations because all inline extents are
+# supposed to start at an offset of 0, resulting in all sorts of
+# chaos.
+# So here we validate that the clone ioctl returns an EOPNOTSUPP,
+# which is what it returns for other cases dealing with inlined
+# extents.
+$CLONER_PROG -s 0 -d $BLOCK_SIZE -l 2048 \
$SCRATCH_MNT/bar $SCRATCH_MNT/foo
-# Because of the inline extent at offset 4K, the following write made the kernel
-# crash with a BUG_ON().
-$XFS_IO_PROG -c "pwrite -S 0xdd 6K 2K" $SCRATCH_MNT/foo | _filter_xfs_io
+# Because of the inline extent at offset $BLOCK_SIZE, the following
+# write made the kernel crash with a BUG_ON().
+$XFS_IO_PROG -c "pwrite -S 0xdd $(($BLOCK_SIZE + 2048)) 2k" \
+ $SCRATCH_MNT/foo | _filter_xfs_io_blocks_modified
status=0
exit
diff --git a/tests/btrfs/096.out b/tests/btrfs/096.out
index 235198d..2a4251e 100644
--- a/tests/btrfs/096.out
+++ b/tests/btrfs/096.out
@@ -1,12 +1,7 @@
QA output created by 096
-wrote 4096/4096 bytes at offset 0
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-wrote 2048/2048 bytes at offset 4096
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-wrote 4096/4096 bytes at offset 8192
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-wrote 2048/2048 bytes at offset 0
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
+Blocks modified: [0 - 0]
+Blocks modified: [1 - 1]
+Blocks modified: [2 - 2]
+Blocks modified: [0 - 0]
clone failed: Operation not supported
-wrote 2048/2048 bytes at offset 6144
-XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
+Blocks modified: [1 - 1]
--
2.1.0
^ permalink raw reply related [flat|nested] 11+ messages in thread* Re: [PATCH V2 5/5] Fix btrfs/096 to work on non-4k block sized filesystems
2015-11-30 10:17 ` [PATCH V2 5/5] Fix btrfs/096 " Chandan Rajendra
@ 2015-12-10 17:25 ` Filipe Manana
0 siblings, 0 replies; 11+ messages in thread
From: Filipe Manana @ 2015-12-10 17:25 UTC (permalink / raw)
To: Chandan Rajendra; +Cc: fstests, linux-btrfs@vger.kernel.org, chandan
On Mon, Nov 30, 2015 at 10:17 AM, Chandan Rajendra
<chandan@linux.vnet.ibm.com> wrote:
> This commit makes use of the new _filter_xfs_io_blocks_modified filtering
> function to print information in terms of file blocks rather than file
> offset.
>
> Signed-off-by: Chandan Rajendra <chandan@linux.vnet.ibm.com>
Reviewed-by: Filipe Manana <fdmanana@suse.com>
Thanks!
> ---
> tests/btrfs/096 | 45 +++++++++++++++++++++++++--------------------
> tests/btrfs/096.out | 15 +++++----------
> 2 files changed, 30 insertions(+), 30 deletions(-)
>
> diff --git a/tests/btrfs/096 b/tests/btrfs/096
> index f5b3a7f..896a209 100755
> --- a/tests/btrfs/096
> +++ b/tests/btrfs/096
> @@ -51,30 +51,35 @@ rm -f $seqres.full
> _scratch_mkfs >>$seqres.full 2>&1
> _scratch_mount
>
> -# Create our test files. File foo has the same 2K of data at offset 4K as file
> -# bar has at its offset 0.
> -$XFS_IO_PROG -f -s -c "pwrite -S 0xaa 0 4K" \
> - -c "pwrite -S 0xbb 4k 2K" \
> - -c "pwrite -S 0xcc 8K 4K" \
> - $SCRATCH_MNT/foo | _filter_xfs_io
> +BLOCK_SIZE=$(get_block_size $SCRATCH_MNT)
>
> -# File bar consists of a single inline extent (2K size).
> -$XFS_IO_PROG -f -s -c "pwrite -S 0xbb 0 2K" \
> - $SCRATCH_MNT/bar | _filter_xfs_io
> +# Create our test files. File foo has the same 2k of data at offset $BLOCK_SIZE
> +# as file bar has at its offset 0.
> +$XFS_IO_PROG -f -s -c "pwrite -S 0xaa 0 $BLOCK_SIZE" \
> + -c "pwrite -S 0xbb $BLOCK_SIZE 2k" \
> + -c "pwrite -S 0xcc $(($BLOCK_SIZE * 2)) $BLOCK_SIZE" \
> + $SCRATCH_MNT/foo | _filter_xfs_io_blocks_modified
>
> -# Now call the clone ioctl to clone the extent of file bar into file foo at its
> -# offset 4K. This made file foo have an inline extent at offset 4K, something
> -# which the btrfs code can not deal with in future IO operations because all
> -# inline extents are supposed to start at an offset of 0, resulting in all sorts
> -# of chaos.
> -# So here we validate that the clone ioctl returns an EOPNOTSUPP, which is what
> -# it returns for other cases dealing with inlined extents.
> -$CLONER_PROG -s 0 -d $((4 * 1024)) -l $((2 * 1024)) \
> +# File bar consists of a single inline extent (2k in size).
> +$XFS_IO_PROG -f -s -c "pwrite -S 0xbb 0 2k" \
> + $SCRATCH_MNT/bar | _filter_xfs_io_blocks_modified
> +
> +# Now call the clone ioctl to clone the extent of file bar into file
> +# foo at its $BLOCK_SIZE offset. This made file foo have an inline
> +# extent at offset $BLOCK_SIZE, something which the btrfs code can not
> +# deal with in future IO operations because all inline extents are
> +# supposed to start at an offset of 0, resulting in all sorts of
> +# chaos.
> +# So here we validate that the clone ioctl returns an EOPNOTSUPP,
> +# which is what it returns for other cases dealing with inlined
> +# extents.
> +$CLONER_PROG -s 0 -d $BLOCK_SIZE -l 2048 \
> $SCRATCH_MNT/bar $SCRATCH_MNT/foo
>
> -# Because of the inline extent at offset 4K, the following write made the kernel
> -# crash with a BUG_ON().
> -$XFS_IO_PROG -c "pwrite -S 0xdd 6K 2K" $SCRATCH_MNT/foo | _filter_xfs_io
> +# Because of the inline extent at offset $BLOCK_SIZE, the following
> +# write made the kernel crash with a BUG_ON().
> +$XFS_IO_PROG -c "pwrite -S 0xdd $(($BLOCK_SIZE + 2048)) 2k" \
> + $SCRATCH_MNT/foo | _filter_xfs_io_blocks_modified
>
> status=0
> exit
> diff --git a/tests/btrfs/096.out b/tests/btrfs/096.out
> index 235198d..2a4251e 100644
> --- a/tests/btrfs/096.out
> +++ b/tests/btrfs/096.out
> @@ -1,12 +1,7 @@
> QA output created by 096
> -wrote 4096/4096 bytes at offset 0
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -wrote 2048/2048 bytes at offset 4096
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -wrote 4096/4096 bytes at offset 8192
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> -wrote 2048/2048 bytes at offset 0
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> +Blocks modified: [0 - 0]
> +Blocks modified: [1 - 1]
> +Blocks modified: [2 - 2]
> +Blocks modified: [0 - 0]
> clone failed: Operation not supported
> -wrote 2048/2048 bytes at offset 6144
> -XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> +Blocks modified: [1 - 1]
> --
> 2.1.0
>
> --
> To unsubscribe from this list: send the line "unsubscribe fstests" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
Filipe David Manana,
"Reasonable men adapt themselves to the world.
Unreasonable men adapt the world to themselves.
That's why all progress depends on unreasonable men."
^ permalink raw reply [flat|nested] 11+ messages in thread