From a35f87f50d4bb5d7255b30e5bb9dddb6f3a6938f Mon Sep 17 00:00:00 2001 From: Alberto Garcia Date: Mon, 9 Oct 2017 17:38:56 +0200 Subject: [PATCH 1/8] qcow2: Use BDRV_SECTOR_BITS instead of its literal value BDRV_SECTOR_BITS is defined to be 9 in block.h (and BDRV_SECTOR_SIZE is calculated from that), but there are still a couple of places where we are using the literal value instead of the macro. Signed-off-by: Alberto Garcia Message-id: 20171009153856.20387-1-berto@igalia.com Signed-off-by: Max Reitz --- block/qcow2.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/block/qcow2.c b/block/qcow2.c index fbf9464d3a..f77b490cc6 100644 --- a/block/qcow2.c +++ b/block/qcow2.c @@ -1139,7 +1139,7 @@ static int qcow2_do_open(BlockDriverState *bs, QDict *options, int flags, s->cluster_bits = header.cluster_bits; s->cluster_size = 1 << s->cluster_bits; - s->cluster_sectors = 1 << (s->cluster_bits - 9); + s->cluster_sectors = 1 << (s->cluster_bits - BDRV_SECTOR_BITS); /* Initialise version 3 header fields */ if (header.version == 2) { @@ -1636,7 +1636,7 @@ static int64_t coroutine_fn qcow2_co_get_block_status(BlockDriverState *bs, bytes = MIN(INT_MAX, nb_sectors * BDRV_SECTOR_SIZE); qemu_co_mutex_lock(&s->lock); - ret = qcow2_get_cluster_offset(bs, sector_num << 9, &bytes, + ret = qcow2_get_cluster_offset(bs, sector_num << BDRV_SECTOR_BITS, &bytes, &cluster_offset); qemu_co_mutex_unlock(&s->lock); if (ret < 0) { From f700ceae8ab57a5c8973932c14f9abba1f99e5a8 Mon Sep 17 00:00:00 2001 From: Max Reitz Date: Fri, 29 Sep 2017 19:08:43 +0200 Subject: [PATCH 2/8] iotests: Add test for dataplane mirroring Signed-off-by: Max Reitz Message-id: 20170929170843.3711-1-mreitz@redhat.com Reviewed-by: Eric Blake Signed-off-by: Max Reitz --- tests/qemu-iotests/127 | 97 ++++++++++++++++++++++++++++++++++++++ tests/qemu-iotests/127.out | 14 ++++++ tests/qemu-iotests/group | 1 + 3 files changed, 112 insertions(+) create mode 100755 tests/qemu-iotests/127 create mode 100644 tests/qemu-iotests/127.out diff --git a/tests/qemu-iotests/127 b/tests/qemu-iotests/127 new file mode 100755 index 0000000000..9e0d7d3be8 --- /dev/null +++ b/tests/qemu-iotests/127 @@ -0,0 +1,97 @@ +#!/bin/bash +# +# Test case for mirroring with dataplane +# +# Copyright (C) 2017 Red Hat, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# + +# creator +owner=mreitz@redhat.com + +seq=$(basename $0) +echo "QA output created by $seq" + +here=$PWD +status=1 # failure is the default! + +_cleanup() +{ + _cleanup_qemu + _cleanup_test_img + _rm_test_img "$TEST_IMG.overlay0" + _rm_test_img "$TEST_IMG.overlay1" +} +trap "_cleanup; exit \$status" 0 1 2 3 15 + +# get standard environment, filters and qemu instance handling +. ./common.rc +. ./common.filter +. ./common.qemu + +_supported_fmt qcow2 +_supported_proto file +_supported_os Linux + +IMG_SIZE=64K + +_make_test_img $IMG_SIZE +TEST_IMG="$TEST_IMG.overlay0" _make_test_img -b "$TEST_IMG" $IMG_SIZE +TEST_IMG="$TEST_IMG.overlay1" _make_test_img -b "$TEST_IMG" $IMG_SIZE + +# So that we actually have something to mirror and the job does not return +# immediately (which may be bad because then we cannot know whether the +# 'return' or the 'BLOCK_JOB_READY' comes first). +$QEMU_IO -c 'write 0 42' "$TEST_IMG.overlay0" | _filter_qemu_io + +# We cannot use virtio-blk here because that does not actually set the attached +# BB's AioContext in qtest mode +_launch_qemu \ + -object iothread,id=iothr \ + -blockdev node-name=source,driver=$IMGFMT,file.driver=file,file.filename="$TEST_IMG.overlay0" \ + -device virtio-scsi,id=scsi-bus,iothread=iothr \ + -device scsi-hd,bus=scsi-bus.0,drive=source + +_send_qemu_cmd $QEMU_HANDLE \ + "{ 'execute': 'qmp_capabilities' }" \ + 'return' + +_send_qemu_cmd $QEMU_HANDLE \ + "{ 'execute': 'drive-mirror', + 'arguments': { + 'job-id': 'mirror', + 'device': 'source', + 'target': '$TEST_IMG.overlay1', + 'mode': 'existing', + 'sync': 'top' + } }" \ + 'BLOCK_JOB_READY' + +# The backing BDS should be assigned the overlay's AioContext +_send_qemu_cmd $QEMU_HANDLE \ + "{ 'execute': 'block-job-complete', + 'arguments': { 'device': 'mirror' } }" \ + 'BLOCK_JOB_COMPLETED' + +_send_qemu_cmd $QEMU_HANDLE \ + "{ 'execute': 'quit' }" \ + 'return' + +wait=yes _cleanup_qemu + +# success, all done +echo '*** done' +rm -f $seq.full +status=0 diff --git a/tests/qemu-iotests/127.out b/tests/qemu-iotests/127.out new file mode 100644 index 0000000000..543d075005 --- /dev/null +++ b/tests/qemu-iotests/127.out @@ -0,0 +1,14 @@ +QA output created by 127 +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=65536 +Formatting 'TEST_DIR/t.IMGFMT.overlay0', fmt=IMGFMT size=65536 backing_file=TEST_DIR/t.IMGFMT +Formatting 'TEST_DIR/t.IMGFMT.overlay1', fmt=IMGFMT size=65536 backing_file=TEST_DIR/t.IMGFMT +wrote 42/42 bytes at offset 0 +42 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +{"return": {}} +{"return": {}} +{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "BLOCK_JOB_READY", "data": {"device": "mirror", "len": 65536, "offset": 65536, "speed": 0, "type": "mirror"}} +{"return": {}} +{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "BLOCK_JOB_COMPLETED", "data": {"device": "mirror", "len": 65536, "offset": 65536, "speed": 0, "type": "mirror"}} +{"return": {}} +{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "SHUTDOWN", "data": {"guest": false}} +*** done diff --git a/tests/qemu-iotests/group b/tests/qemu-iotests/group index 83da427c0a..24e5ad1b79 100644 --- a/tests/qemu-iotests/group +++ b/tests/qemu-iotests/group @@ -133,6 +133,7 @@ 124 rw auto backing 125 rw auto 126 rw auto backing +127 rw auto backing quick 128 rw auto quick 129 rw auto quick 130 rw auto quick From 44673a0b59d1fafd1abfdf35a1ac924b856c6ad5 Mon Sep 17 00:00:00 2001 From: Max Reitz Date: Mon, 9 Oct 2017 18:34:55 +0200 Subject: [PATCH 3/8] iotests: Pull _filter_actual_image_size from 67/87 Tests 067 and 087 filter the actual image size because it depends on the host filesystem (and is not part of the respective test). Since this is generally true, we should have a common filter function for this, so let's pull out the sed line from both tests into such a function. Signed-off-by: Max Reitz Message-id: 20171009163456.485-2-mreitz@redhat.com Reviewed-by: Eric Blake Reviewed-by: Jeff Cody Signed-off-by: Max Reitz --- tests/qemu-iotests/067 | 2 +- tests/qemu-iotests/087 | 2 +- tests/qemu-iotests/common.filter | 6 ++++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/tests/qemu-iotests/067 b/tests/qemu-iotests/067 index ee9595f0da..9d561ef786 100755 --- a/tests/qemu-iotests/067 +++ b/tests/qemu-iotests/067 @@ -56,7 +56,7 @@ _filter_qmp_events() function run_qemu() { do_run_qemu "$@" 2>&1 | _filter_testdir | _filter_qmp | _filter_qemu \ - | sed -e 's/\("actual-size":\s*\)[0-9]\+/\1SIZE/g' \ + | _filter_actual_image_size \ | _filter_generated_node_ids | _filter_qmp_events } diff --git a/tests/qemu-iotests/087 b/tests/qemu-iotests/087 index f8e4903f4f..27ab6c5151 100755 --- a/tests/qemu-iotests/087 +++ b/tests/qemu-iotests/087 @@ -46,7 +46,7 @@ function run_qemu() { do_run_qemu "$@" 2>&1 | _filter_testdir | _filter_qmp \ | _filter_qemu | _filter_imgfmt \ - | sed -e 's/\("actual-size":\s*\)[0-9]\+/\1SIZE/g' + | _filter_actual_image_size } size=128M diff --git a/tests/qemu-iotests/common.filter b/tests/qemu-iotests/common.filter index 227b37e941..873ca6b104 100644 --- a/tests/qemu-iotests/common.filter +++ b/tests/qemu-iotests/common.filter @@ -105,6 +105,12 @@ _filter_block_job_len() sed -e 's/, "len": [0-9]\+,/, "len": LEN,/g' } +# replace actual image size (depends on the host filesystem) +_filter_actual_image_size() +{ + sed -s 's/\("actual-size":\s*\)[0-9]\+/\1SIZE/g' +} + # replace driver-specific options in the "Formatting..." line _filter_img_create() { From b66df843b442924745d196bd0a05f0639b808164 Mon Sep 17 00:00:00 2001 From: Max Reitz Date: Mon, 9 Oct 2017 18:34:56 +0200 Subject: [PATCH 4/8] iotests: Filter actual image size in 184 and 191 Whenever the actual image size is not part of the test, it should be filtered as it depends on the host filesystem. Signed-off-by: Max Reitz Message-id: 20171009163456.485-3-mreitz@redhat.com Reviewed-by: Eric Blake Reviewed-by: Jeff Cody Signed-off-by: Max Reitz --- tests/qemu-iotests/184 | 3 ++- tests/qemu-iotests/184.out | 6 ++--- tests/qemu-iotests/191 | 4 ++-- tests/qemu-iotests/191.out | 46 +++++++++++++++++++------------------- 4 files changed, 30 insertions(+), 29 deletions(-) diff --git a/tests/qemu-iotests/184 b/tests/qemu-iotests/184 index 704f38f936..ee96c99af3 100755 --- a/tests/qemu-iotests/184 +++ b/tests/qemu-iotests/184 @@ -51,7 +51,8 @@ function do_run_qemu() function run_qemu() { do_run_qemu "$@" 2>&1 | _filter_testdir | _filter_qemu | _filter_qmp\ - | _filter_qemu_io | _filter_generated_node_ids + | _filter_qemu_io | _filter_generated_node_ids \ + | _filter_actual_image_size } _make_test_img 64M diff --git a/tests/qemu-iotests/184.out b/tests/qemu-iotests/184.out index 0aed1a2220..4dc7984a85 100644 --- a/tests/qemu-iotests/184.out +++ b/tests/qemu-iotests/184.out @@ -32,7 +32,7 @@ Testing: "filename": "json:{\"throttle-group\": \"group0\", \"driver\": \"throttle\", \"file\": {\"driver\": \"qcow2\", \"file\": {\"driver\": \"file\", \"filename\": \"TEST_DIR/t.qcow2\"}}}", "cluster-size": 65536, "format": "throttle", - "actual-size": 200704, + "actual-size": SIZE, "dirty-flag": false }, "iops_wr": 0, @@ -62,7 +62,7 @@ Testing: "filename": "TEST_DIR/t.qcow2", "cluster-size": 65536, "format": "qcow2", - "actual-size": 200704, + "actual-size": SIZE, "format-specific": { "type": "qcow2", "data": { @@ -100,7 +100,7 @@ Testing: "virtual-size": 197120, "filename": "TEST_DIR/t.qcow2", "format": "file", - "actual-size": 200704, + "actual-size": SIZE, "dirty-flag": false }, "iops_wr": 0, diff --git a/tests/qemu-iotests/191 b/tests/qemu-iotests/191 index 28bdea8f98..ad785e10b1 100755 --- a/tests/qemu-iotests/191 +++ b/tests/qemu-iotests/191 @@ -92,7 +92,7 @@ echo === Check that both top and top2 point to base now === echo _send_qemu_cmd $h "{ 'execute': 'query-named-block-nodes' }" "^}" | - _filter_generated_node_ids + _filter_generated_node_ids | _filter_actual_image_size _send_qemu_cmd $h "{ 'execute': 'quit' }" "^}" wait=1 _cleanup_qemu @@ -140,7 +140,7 @@ echo === Check that both top and top2 point to base now === echo _send_qemu_cmd $h "{ 'execute': 'query-named-block-nodes' }" "^}" | - _filter_generated_node_ids + _filter_generated_node_ids | _filter_actual_image_size _send_qemu_cmd $h "{ 'execute': 'quit' }" "^}" wait=1 _cleanup_qemu diff --git a/tests/qemu-iotests/191.out b/tests/qemu-iotests/191.out index 6157fa520f..73c0ed454c 100644 --- a/tests/qemu-iotests/191.out +++ b/tests/qemu-iotests/191.out @@ -47,7 +47,7 @@ wrote 65536/65536 bytes at offset 1048576 "filename": "TEST_DIR/t.qcow2.base", "cluster-size": 65536, "format": "qcow2", - "actual-size": 397312, + "actual-size": SIZE, "format-specific": { "type": "qcow2", "data": { @@ -64,7 +64,7 @@ wrote 65536/65536 bytes at offset 1048576 "filename": "TEST_DIR/t.qcow2.ovl2", "cluster-size": 65536, "format": "qcow2", - "actual-size": 200704, + "actual-size": SIZE, "format-specific": { "type": "qcow2", "data": { @@ -105,7 +105,7 @@ wrote 65536/65536 bytes at offset 1048576 "virtual-size": 197120, "filename": "TEST_DIR/t.qcow2.ovl2", "format": "file", - "actual-size": 200704, + "actual-size": SIZE, "dirty-flag": false }, "iops_wr": 0, @@ -136,7 +136,7 @@ wrote 65536/65536 bytes at offset 1048576 "filename": "TEST_DIR/t.qcow2.base", "cluster-size": 65536, "format": "qcow2", - "actual-size": 397312, + "actual-size": SIZE, "format-specific": { "type": "qcow2", "data": { @@ -153,7 +153,7 @@ wrote 65536/65536 bytes at offset 1048576 "filename": "TEST_DIR/t.qcow2", "cluster-size": 65536, "format": "qcow2", - "actual-size": 200704, + "actual-size": SIZE, "format-specific": { "type": "qcow2", "data": { @@ -194,7 +194,7 @@ wrote 65536/65536 bytes at offset 1048576 "virtual-size": 197120, "filename": "TEST_DIR/t.qcow2", "format": "file", - "actual-size": 200704, + "actual-size": SIZE, "dirty-flag": false }, "iops_wr": 0, @@ -225,7 +225,7 @@ wrote 65536/65536 bytes at offset 1048576 "filename": "TEST_DIR/t.qcow2.base", "cluster-size": 65536, "format": "qcow2", - "actual-size": 397312, + "actual-size": SIZE, "format-specific": { "type": "qcow2", "data": { @@ -242,7 +242,7 @@ wrote 65536/65536 bytes at offset 1048576 "filename": "TEST_DIR/t.qcow2.mid", "cluster-size": 65536, "format": "qcow2", - "actual-size": 397312, + "actual-size": SIZE, "format-specific": { "type": "qcow2", "data": { @@ -283,7 +283,7 @@ wrote 65536/65536 bytes at offset 1048576 "virtual-size": 393216, "filename": "TEST_DIR/t.qcow2.mid", "format": "file", - "actual-size": 397312, + "actual-size": SIZE, "dirty-flag": false }, "iops_wr": 0, @@ -313,7 +313,7 @@ wrote 65536/65536 bytes at offset 1048576 "filename": "TEST_DIR/t.qcow2.base", "cluster-size": 65536, "format": "qcow2", - "actual-size": 397312, + "actual-size": SIZE, "format-specific": { "type": "qcow2", "data": { @@ -351,7 +351,7 @@ wrote 65536/65536 bytes at offset 1048576 "virtual-size": 393216, "filename": "TEST_DIR/t.qcow2.base", "format": "file", - "actual-size": 397312, + "actual-size": SIZE, "dirty-flag": false }, "iops_wr": 0, @@ -450,7 +450,7 @@ wrote 65536/65536 bytes at offset 1048576 "filename": "TEST_DIR/t.qcow2.base", "cluster-size": 65536, "format": "qcow2", - "actual-size": 397312, + "actual-size": SIZE, "format-specific": { "type": "qcow2", "data": { @@ -467,7 +467,7 @@ wrote 65536/65536 bytes at offset 1048576 "filename": "TEST_DIR/t.qcow2.ovl2", "cluster-size": 65536, "format": "qcow2", - "actual-size": 200704, + "actual-size": SIZE, "format-specific": { "type": "qcow2", "data": { @@ -508,7 +508,7 @@ wrote 65536/65536 bytes at offset 1048576 "virtual-size": 197120, "filename": "TEST_DIR/t.qcow2.ovl2", "format": "file", - "actual-size": 200704, + "actual-size": SIZE, "dirty-flag": false }, "iops_wr": 0, @@ -540,7 +540,7 @@ wrote 65536/65536 bytes at offset 1048576 "filename": "TEST_DIR/t.qcow2.base", "cluster-size": 65536, "format": "qcow2", - "actual-size": 397312, + "actual-size": SIZE, "format-specific": { "type": "qcow2", "data": { @@ -557,7 +557,7 @@ wrote 65536/65536 bytes at offset 1048576 "filename": "TEST_DIR/t.qcow2.ovl2", "cluster-size": 65536, "format": "qcow2", - "actual-size": 200704, + "actual-size": SIZE, "format-specific": { "type": "qcow2", "data": { @@ -576,7 +576,7 @@ wrote 65536/65536 bytes at offset 1048576 "filename": "TEST_DIR/t.qcow2.ovl3", "cluster-size": 65536, "format": "qcow2", - "actual-size": 200704, + "actual-size": SIZE, "format-specific": { "type": "qcow2", "data": { @@ -617,7 +617,7 @@ wrote 65536/65536 bytes at offset 1048576 "virtual-size": 197120, "filename": "TEST_DIR/t.qcow2.ovl3", "format": "file", - "actual-size": 200704, + "actual-size": SIZE, "dirty-flag": false }, "iops_wr": 0, @@ -647,7 +647,7 @@ wrote 65536/65536 bytes at offset 1048576 "filename": "TEST_DIR/t.qcow2.base", "cluster-size": 65536, "format": "qcow2", - "actual-size": 397312, + "actual-size": SIZE, "format-specific": { "type": "qcow2", "data": { @@ -685,7 +685,7 @@ wrote 65536/65536 bytes at offset 1048576 "virtual-size": 393216, "filename": "TEST_DIR/t.qcow2.base", "format": "file", - "actual-size": 397312, + "actual-size": SIZE, "dirty-flag": false }, "iops_wr": 0, @@ -716,7 +716,7 @@ wrote 65536/65536 bytes at offset 1048576 "filename": "TEST_DIR/t.qcow2.base", "cluster-size": 65536, "format": "qcow2", - "actual-size": 397312, + "actual-size": SIZE, "format-specific": { "type": "qcow2", "data": { @@ -733,7 +733,7 @@ wrote 65536/65536 bytes at offset 1048576 "filename": "TEST_DIR/t.qcow2", "cluster-size": 65536, "format": "qcow2", - "actual-size": 200704, + "actual-size": SIZE, "format-specific": { "type": "qcow2", "data": { @@ -774,7 +774,7 @@ wrote 65536/65536 bytes at offset 1048576 "virtual-size": 197120, "filename": "TEST_DIR/t.qcow2", "format": "file", - "actual-size": 200704, + "actual-size": SIZE, "dirty-flag": false }, "iops_wr": 0, From 233521b1999810036f63d060ce021d30a8ce0504 Mon Sep 17 00:00:00 2001 From: Max Reitz Date: Mon, 9 Oct 2017 17:54:31 +0200 Subject: [PATCH 5/8] qcow2: Emit errp when truncating the image tail bdrv_truncate() has an errp parameter which is always set when an error occurs. Let's use that instead of a plain strerror(). Signed-off-by: Max Reitz Message-id: 20171009155431.14093-1-mreitz@redhat.com Reviewed-by: Pavel Butsykin Reviewed-by: Jeff Cody Signed-off-by: Max Reitz --- block/qcow2.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/block/qcow2.c b/block/qcow2.c index f77b490cc6..d3e114bce5 100644 --- a/block/qcow2.c +++ b/block/qcow2.c @@ -3145,12 +3145,13 @@ static int qcow2_truncate(BlockDriverState *bs, int64_t offset, return last_cluster; } if ((last_cluster + 1) * s->cluster_size < old_file_size) { - ret = bdrv_truncate(bs->file, (last_cluster + 1) * s->cluster_size, - PREALLOC_MODE_OFF, NULL); - if (ret < 0) { - warn_report("Failed to truncate the tail of the image: %s", - strerror(-ret)); - ret = 0; + Error *local_err = NULL; + + bdrv_truncate(bs->file, (last_cluster + 1) * s->cluster_size, + PREALLOC_MODE_OFF, &local_err); + if (local_err) { + warn_reportf_err(local_err, + "Failed to truncate the tail of the image: "); } } } else { From e400ad1e1f0127b4fdabcb1c8de1e99be91788df Mon Sep 17 00:00:00 2001 From: Max Reitz Date: Mon, 9 Oct 2017 23:55:31 +0200 Subject: [PATCH 6/8] qcow2: Fix unaligned preallocated truncation A qcow2 image file's length is not required to have a length that is a multiple of the cluster size. However, qcow2_refcount_area() expects an aligned value for its @start_offset parameter, so we need to round @old_file_size up to the next cluster boundary. Reported-by: Ping Li Bug: https://bugzilla.redhat.com/show_bug.cgi?id=1414049 Signed-off-by: Max Reitz Message-id: 20171009215533.12530-2-mreitz@redhat.com Cc: qemu-stable@nongnu.org Reviewed-by: Eric Blake Reviewed-by: Jeff Cody Reviewed-by: Stefan Hajnoczi Signed-off-by: Max Reitz --- block/qcow2.c | 1 + 1 file changed, 1 insertion(+) diff --git a/block/qcow2.c b/block/qcow2.c index d3e114bce5..1ea763126d 100644 --- a/block/qcow2.c +++ b/block/qcow2.c @@ -3188,6 +3188,7 @@ static int qcow2_truncate(BlockDriverState *bs, int64_t offset, "Failed to inquire current file length"); return old_file_size; } + old_file_size = ROUND_UP(old_file_size, s->cluster_size); nb_new_data_clusters = DIV_ROUND_UP(offset - old_length, s->cluster_size); From 572b07bea1d1a0f7726fd95c2613c76002a379bc Mon Sep 17 00:00:00 2001 From: Max Reitz Date: Mon, 9 Oct 2017 23:55:32 +0200 Subject: [PATCH 7/8] qcow2: Always execute preallocate() in a coroutine Some qcow2 functions (at least perform_cow()) expect s->lock to be taken. Therefore, if we want to make use of them, we should execute preallocate() (as "preallocate_co") in a coroutine so that we can use the qemu_co_mutex_* functions. Signed-off-by: Max Reitz Message-id: 20171009215533.12530-3-mreitz@redhat.com Cc: qemu-stable@nongnu.org Reviewed-by: Eric Blake Reviewed-by: Jeff Cody Reviewed-by: Stefan Hajnoczi Signed-off-by: Max Reitz --- block/qcow2.c | 41 ++++++++++++++++++++++++++++++++++------- 1 file changed, 34 insertions(+), 7 deletions(-) diff --git a/block/qcow2.c b/block/qcow2.c index 1ea763126d..92cb9f9bfa 100644 --- a/block/qcow2.c +++ b/block/qcow2.c @@ -2460,6 +2460,14 @@ static int qcow2_set_up_encryption(BlockDriverState *bs, const char *encryptfmt, } +typedef struct PreallocCo { + BlockDriverState *bs; + uint64_t offset; + uint64_t new_length; + + int ret; +} PreallocCo; + /** * Preallocates metadata structures for data clusters between @offset (in the * guest disk) and @new_length (which is thus generally the new guest disk @@ -2467,9 +2475,12 @@ static int qcow2_set_up_encryption(BlockDriverState *bs, const char *encryptfmt, * * Returns: 0 on success, -errno on failure. */ -static int preallocate(BlockDriverState *bs, - uint64_t offset, uint64_t new_length) +static void coroutine_fn preallocate_co(void *opaque) { + PreallocCo *params = opaque; + BlockDriverState *bs = params->bs; + uint64_t offset = params->offset; + uint64_t new_length = params->new_length; BDRVQcow2State *s = bs->opaque; uint64_t bytes; uint64_t host_offset = 0; @@ -2477,9 +2488,7 @@ static int preallocate(BlockDriverState *bs, int ret; QCowL2Meta *meta; - if (qemu_in_coroutine()) { - qemu_co_mutex_lock(&s->lock); - } + qemu_co_mutex_lock(&s->lock); assert(offset <= new_length); bytes = new_length - offset; @@ -2533,10 +2542,28 @@ static int preallocate(BlockDriverState *bs, ret = 0; done: + qemu_co_mutex_unlock(&s->lock); + params->ret = ret; +} + +static int preallocate(BlockDriverState *bs, + uint64_t offset, uint64_t new_length) +{ + PreallocCo params = { + .bs = bs, + .offset = offset, + .new_length = new_length, + .ret = -EINPROGRESS, + }; + if (qemu_in_coroutine()) { - qemu_co_mutex_unlock(&s->lock); + preallocate_co(¶ms); + } else { + Coroutine *co = qemu_coroutine_create(preallocate_co, ¶ms); + bdrv_coroutine_enter(bs, co); + BDRV_POLL_WHILE(bs, params.ret == -EINPROGRESS); } - return ret; + return params.ret; } /* qcow2_refcount_metadata_size: From 4c112a397c2f61038914fa315a7896ce6d645d18 Mon Sep 17 00:00:00 2001 From: Max Reitz Date: Mon, 9 Oct 2017 23:55:33 +0200 Subject: [PATCH 8/8] iotests: Add cluster_size=64k to 125 Apparently it would be a good idea to test that, too. Signed-off-by: Max Reitz Message-id: 20171009215533.12530-4-mreitz@redhat.com Reviewed-by: Eric Blake Reviewed-by: Jeff Cody Reviewed-by: Stefan Hajnoczi Signed-off-by: Max Reitz --- tests/qemu-iotests/125 | 7 +- tests/qemu-iotests/125.out | 480 +++++++++++++++++++++++++++++++++---- 2 files changed, 437 insertions(+), 50 deletions(-) diff --git a/tests/qemu-iotests/125 b/tests/qemu-iotests/125 index 9424313e82..c20c71570c 100755 --- a/tests/qemu-iotests/125 +++ b/tests/qemu-iotests/125 @@ -69,13 +69,15 @@ fi # in B CREATION_SIZE=$((2 * 1024 * 1024 - 48 * 1024)) +# 512 is the actual test -- but it's good to test 64k as well, just to be sure. +for cluster_size in 512 64k; do # in kB for GROWTH_SIZE in 16 48 80; do for create_mode in off metadata falloc full; do for growth_mode in off metadata falloc full; do - echo "--- growth_size=$GROWTH_SIZE create_mode=$create_mode growth_mode=$growth_mode ---" + echo "--- cluster_size=$cluster_size growth_size=$GROWTH_SIZE create_mode=$create_mode growth_mode=$growth_mode ---" - IMGOPTS="preallocation=$create_mode,cluster_size=512" _make_test_img ${CREATION_SIZE} + IMGOPTS="preallocation=$create_mode,cluster_size=$cluster_size" _make_test_img ${CREATION_SIZE} $QEMU_IMG resize -f "$IMGFMT" --preallocation=$growth_mode "$TEST_IMG" +${GROWTH_SIZE}K host_size_0=$(get_image_size_on_host) @@ -123,6 +125,7 @@ for GROWTH_SIZE in 16 48 80; do done done done +done # success, all done echo '*** done' diff --git a/tests/qemu-iotests/125.out b/tests/qemu-iotests/125.out index 3f4d6e31a6..596905f533 100644 --- a/tests/qemu-iotests/125.out +++ b/tests/qemu-iotests/125.out @@ -1,5 +1,5 @@ QA output created by 125 ---- growth_size=16 create_mode=off growth_mode=off --- +--- cluster_size=512 growth_size=16 create_mode=off growth_mode=off --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=off Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -7,7 +7,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 16384/16384 bytes at offset 2048000 16 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=16 create_mode=off growth_mode=metadata --- +--- cluster_size=512 growth_size=16 create_mode=off growth_mode=metadata --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=off Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -15,7 +15,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 16384/16384 bytes at offset 2048000 16 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=16 create_mode=off growth_mode=falloc --- +--- cluster_size=512 growth_size=16 create_mode=off growth_mode=falloc --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=off Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -23,7 +23,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 16384/16384 bytes at offset 2048000 16 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=16 create_mode=off growth_mode=full --- +--- cluster_size=512 growth_size=16 create_mode=off growth_mode=full --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=off Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -31,7 +31,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 16384/16384 bytes at offset 2048000 16 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=16 create_mode=metadata growth_mode=off --- +--- cluster_size=512 growth_size=16 create_mode=metadata growth_mode=off --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=metadata Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -39,7 +39,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 16384/16384 bytes at offset 2048000 16 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=16 create_mode=metadata growth_mode=metadata --- +--- cluster_size=512 growth_size=16 create_mode=metadata growth_mode=metadata --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=metadata Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -47,7 +47,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 16384/16384 bytes at offset 2048000 16 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=16 create_mode=metadata growth_mode=falloc --- +--- cluster_size=512 growth_size=16 create_mode=metadata growth_mode=falloc --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=metadata Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -55,7 +55,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 16384/16384 bytes at offset 2048000 16 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=16 create_mode=metadata growth_mode=full --- +--- cluster_size=512 growth_size=16 create_mode=metadata growth_mode=full --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=metadata Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -63,7 +63,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 16384/16384 bytes at offset 2048000 16 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=16 create_mode=falloc growth_mode=off --- +--- cluster_size=512 growth_size=16 create_mode=falloc growth_mode=off --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=falloc Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -71,7 +71,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 16384/16384 bytes at offset 2048000 16 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=16 create_mode=falloc growth_mode=metadata --- +--- cluster_size=512 growth_size=16 create_mode=falloc growth_mode=metadata --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=falloc Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -79,7 +79,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 16384/16384 bytes at offset 2048000 16 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=16 create_mode=falloc growth_mode=falloc --- +--- cluster_size=512 growth_size=16 create_mode=falloc growth_mode=falloc --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=falloc Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -87,7 +87,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 16384/16384 bytes at offset 2048000 16 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=16 create_mode=falloc growth_mode=full --- +--- cluster_size=512 growth_size=16 create_mode=falloc growth_mode=full --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=falloc Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -95,7 +95,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 16384/16384 bytes at offset 2048000 16 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=16 create_mode=full growth_mode=off --- +--- cluster_size=512 growth_size=16 create_mode=full growth_mode=off --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=full Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -103,7 +103,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 16384/16384 bytes at offset 2048000 16 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=16 create_mode=full growth_mode=metadata --- +--- cluster_size=512 growth_size=16 create_mode=full growth_mode=metadata --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=full Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -111,7 +111,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 16384/16384 bytes at offset 2048000 16 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=16 create_mode=full growth_mode=falloc --- +--- cluster_size=512 growth_size=16 create_mode=full growth_mode=falloc --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=full Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -119,7 +119,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 16384/16384 bytes at offset 2048000 16 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=16 create_mode=full growth_mode=full --- +--- cluster_size=512 growth_size=16 create_mode=full growth_mode=full --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=full Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -127,7 +127,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 16384/16384 bytes at offset 2048000 16 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=48 create_mode=off growth_mode=off --- +--- cluster_size=512 growth_size=48 create_mode=off growth_mode=off --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=off Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -135,7 +135,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 49152/49152 bytes at offset 2048000 48 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=48 create_mode=off growth_mode=metadata --- +--- cluster_size=512 growth_size=48 create_mode=off growth_mode=metadata --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=off Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -143,7 +143,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 49152/49152 bytes at offset 2048000 48 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=48 create_mode=off growth_mode=falloc --- +--- cluster_size=512 growth_size=48 create_mode=off growth_mode=falloc --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=off Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -151,7 +151,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 49152/49152 bytes at offset 2048000 48 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=48 create_mode=off growth_mode=full --- +--- cluster_size=512 growth_size=48 create_mode=off growth_mode=full --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=off Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -159,7 +159,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 49152/49152 bytes at offset 2048000 48 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=48 create_mode=metadata growth_mode=off --- +--- cluster_size=512 growth_size=48 create_mode=metadata growth_mode=off --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=metadata Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -167,7 +167,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 49152/49152 bytes at offset 2048000 48 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=48 create_mode=metadata growth_mode=metadata --- +--- cluster_size=512 growth_size=48 create_mode=metadata growth_mode=metadata --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=metadata Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -175,7 +175,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 49152/49152 bytes at offset 2048000 48 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=48 create_mode=metadata growth_mode=falloc --- +--- cluster_size=512 growth_size=48 create_mode=metadata growth_mode=falloc --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=metadata Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -183,7 +183,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 49152/49152 bytes at offset 2048000 48 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=48 create_mode=metadata growth_mode=full --- +--- cluster_size=512 growth_size=48 create_mode=metadata growth_mode=full --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=metadata Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -191,7 +191,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 49152/49152 bytes at offset 2048000 48 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=48 create_mode=falloc growth_mode=off --- +--- cluster_size=512 growth_size=48 create_mode=falloc growth_mode=off --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=falloc Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -199,7 +199,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 49152/49152 bytes at offset 2048000 48 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=48 create_mode=falloc growth_mode=metadata --- +--- cluster_size=512 growth_size=48 create_mode=falloc growth_mode=metadata --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=falloc Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -207,7 +207,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 49152/49152 bytes at offset 2048000 48 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=48 create_mode=falloc growth_mode=falloc --- +--- cluster_size=512 growth_size=48 create_mode=falloc growth_mode=falloc --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=falloc Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -215,7 +215,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 49152/49152 bytes at offset 2048000 48 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=48 create_mode=falloc growth_mode=full --- +--- cluster_size=512 growth_size=48 create_mode=falloc growth_mode=full --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=falloc Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -223,7 +223,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 49152/49152 bytes at offset 2048000 48 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=48 create_mode=full growth_mode=off --- +--- cluster_size=512 growth_size=48 create_mode=full growth_mode=off --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=full Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -231,7 +231,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 49152/49152 bytes at offset 2048000 48 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=48 create_mode=full growth_mode=metadata --- +--- cluster_size=512 growth_size=48 create_mode=full growth_mode=metadata --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=full Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -239,7 +239,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 49152/49152 bytes at offset 2048000 48 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=48 create_mode=full growth_mode=falloc --- +--- cluster_size=512 growth_size=48 create_mode=full growth_mode=falloc --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=full Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -247,7 +247,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 49152/49152 bytes at offset 2048000 48 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=48 create_mode=full growth_mode=full --- +--- cluster_size=512 growth_size=48 create_mode=full growth_mode=full --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=full Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -255,7 +255,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 49152/49152 bytes at offset 2048000 48 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=80 create_mode=off growth_mode=off --- +--- cluster_size=512 growth_size=80 create_mode=off growth_mode=off --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=off Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -263,7 +263,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 81920/81920 bytes at offset 2048000 80 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=80 create_mode=off growth_mode=metadata --- +--- cluster_size=512 growth_size=80 create_mode=off growth_mode=metadata --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=off Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -271,7 +271,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 81920/81920 bytes at offset 2048000 80 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=80 create_mode=off growth_mode=falloc --- +--- cluster_size=512 growth_size=80 create_mode=off growth_mode=falloc --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=off Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -279,7 +279,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 81920/81920 bytes at offset 2048000 80 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=80 create_mode=off growth_mode=full --- +--- cluster_size=512 growth_size=80 create_mode=off growth_mode=full --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=off Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -287,7 +287,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 81920/81920 bytes at offset 2048000 80 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=80 create_mode=metadata growth_mode=off --- +--- cluster_size=512 growth_size=80 create_mode=metadata growth_mode=off --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=metadata Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -295,7 +295,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 81920/81920 bytes at offset 2048000 80 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=80 create_mode=metadata growth_mode=metadata --- +--- cluster_size=512 growth_size=80 create_mode=metadata growth_mode=metadata --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=metadata Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -303,7 +303,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 81920/81920 bytes at offset 2048000 80 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=80 create_mode=metadata growth_mode=falloc --- +--- cluster_size=512 growth_size=80 create_mode=metadata growth_mode=falloc --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=metadata Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -311,7 +311,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 81920/81920 bytes at offset 2048000 80 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=80 create_mode=metadata growth_mode=full --- +--- cluster_size=512 growth_size=80 create_mode=metadata growth_mode=full --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=metadata Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -319,7 +319,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 81920/81920 bytes at offset 2048000 80 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=80 create_mode=falloc growth_mode=off --- +--- cluster_size=512 growth_size=80 create_mode=falloc growth_mode=off --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=falloc Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -327,7 +327,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 81920/81920 bytes at offset 2048000 80 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=80 create_mode=falloc growth_mode=metadata --- +--- cluster_size=512 growth_size=80 create_mode=falloc growth_mode=metadata --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=falloc Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -335,7 +335,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 81920/81920 bytes at offset 2048000 80 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=80 create_mode=falloc growth_mode=falloc --- +--- cluster_size=512 growth_size=80 create_mode=falloc growth_mode=falloc --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=falloc Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -343,7 +343,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 81920/81920 bytes at offset 2048000 80 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=80 create_mode=falloc growth_mode=full --- +--- cluster_size=512 growth_size=80 create_mode=falloc growth_mode=full --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=falloc Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -351,7 +351,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 81920/81920 bytes at offset 2048000 80 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=80 create_mode=full growth_mode=off --- +--- cluster_size=512 growth_size=80 create_mode=full growth_mode=off --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=full Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -359,7 +359,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 81920/81920 bytes at offset 2048000 80 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=80 create_mode=full growth_mode=metadata --- +--- cluster_size=512 growth_size=80 create_mode=full growth_mode=metadata --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=full Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -367,7 +367,7 @@ wrote 2048000/2048000 bytes at offset 0 wrote 81920/81920 bytes at offset 2048000 80 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=80 create_mode=full growth_mode=falloc --- +--- cluster_size=512 growth_size=80 create_mode=full growth_mode=falloc --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=full Image resized. wrote 2048000/2048000 bytes at offset 0 @@ -375,7 +375,391 @@ wrote 2048000/2048000 bytes at offset 0 wrote 81920/81920 bytes at offset 2048000 80 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) ---- growth_size=80 create_mode=full growth_mode=full --- +--- cluster_size=512 growth_size=80 create_mode=full growth_mode=full --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=full +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 81920/81920 bytes at offset 2048000 +80 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=16 create_mode=off growth_mode=off --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=off +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 16384/16384 bytes at offset 2048000 +16 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=16 create_mode=off growth_mode=metadata --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=off +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 16384/16384 bytes at offset 2048000 +16 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=16 create_mode=off growth_mode=falloc --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=off +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 16384/16384 bytes at offset 2048000 +16 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=16 create_mode=off growth_mode=full --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=off +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 16384/16384 bytes at offset 2048000 +16 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=16 create_mode=metadata growth_mode=off --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=metadata +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 16384/16384 bytes at offset 2048000 +16 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=16 create_mode=metadata growth_mode=metadata --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=metadata +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 16384/16384 bytes at offset 2048000 +16 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=16 create_mode=metadata growth_mode=falloc --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=metadata +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 16384/16384 bytes at offset 2048000 +16 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=16 create_mode=metadata growth_mode=full --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=metadata +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 16384/16384 bytes at offset 2048000 +16 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=16 create_mode=falloc growth_mode=off --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=falloc +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 16384/16384 bytes at offset 2048000 +16 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=16 create_mode=falloc growth_mode=metadata --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=falloc +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 16384/16384 bytes at offset 2048000 +16 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=16 create_mode=falloc growth_mode=falloc --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=falloc +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 16384/16384 bytes at offset 2048000 +16 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=16 create_mode=falloc growth_mode=full --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=falloc +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 16384/16384 bytes at offset 2048000 +16 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=16 create_mode=full growth_mode=off --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=full +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 16384/16384 bytes at offset 2048000 +16 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=16 create_mode=full growth_mode=metadata --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=full +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 16384/16384 bytes at offset 2048000 +16 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=16 create_mode=full growth_mode=falloc --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=full +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 16384/16384 bytes at offset 2048000 +16 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=16 create_mode=full growth_mode=full --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=full +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 16384/16384 bytes at offset 2048000 +16 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=48 create_mode=off growth_mode=off --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=off +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 49152/49152 bytes at offset 2048000 +48 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=48 create_mode=off growth_mode=metadata --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=off +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 49152/49152 bytes at offset 2048000 +48 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=48 create_mode=off growth_mode=falloc --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=off +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 49152/49152 bytes at offset 2048000 +48 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=48 create_mode=off growth_mode=full --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=off +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 49152/49152 bytes at offset 2048000 +48 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=48 create_mode=metadata growth_mode=off --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=metadata +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 49152/49152 bytes at offset 2048000 +48 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=48 create_mode=metadata growth_mode=metadata --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=metadata +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 49152/49152 bytes at offset 2048000 +48 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=48 create_mode=metadata growth_mode=falloc --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=metadata +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 49152/49152 bytes at offset 2048000 +48 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=48 create_mode=metadata growth_mode=full --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=metadata +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 49152/49152 bytes at offset 2048000 +48 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=48 create_mode=falloc growth_mode=off --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=falloc +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 49152/49152 bytes at offset 2048000 +48 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=48 create_mode=falloc growth_mode=metadata --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=falloc +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 49152/49152 bytes at offset 2048000 +48 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=48 create_mode=falloc growth_mode=falloc --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=falloc +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 49152/49152 bytes at offset 2048000 +48 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=48 create_mode=falloc growth_mode=full --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=falloc +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 49152/49152 bytes at offset 2048000 +48 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=48 create_mode=full growth_mode=off --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=full +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 49152/49152 bytes at offset 2048000 +48 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=48 create_mode=full growth_mode=metadata --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=full +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 49152/49152 bytes at offset 2048000 +48 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=48 create_mode=full growth_mode=falloc --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=full +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 49152/49152 bytes at offset 2048000 +48 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=48 create_mode=full growth_mode=full --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=full +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 49152/49152 bytes at offset 2048000 +48 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=80 create_mode=off growth_mode=off --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=off +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 81920/81920 bytes at offset 2048000 +80 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=80 create_mode=off growth_mode=metadata --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=off +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 81920/81920 bytes at offset 2048000 +80 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=80 create_mode=off growth_mode=falloc --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=off +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 81920/81920 bytes at offset 2048000 +80 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=80 create_mode=off growth_mode=full --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=off +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 81920/81920 bytes at offset 2048000 +80 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=80 create_mode=metadata growth_mode=off --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=metadata +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 81920/81920 bytes at offset 2048000 +80 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=80 create_mode=metadata growth_mode=metadata --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=metadata +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 81920/81920 bytes at offset 2048000 +80 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=80 create_mode=metadata growth_mode=falloc --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=metadata +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 81920/81920 bytes at offset 2048000 +80 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=80 create_mode=metadata growth_mode=full --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=metadata +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 81920/81920 bytes at offset 2048000 +80 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=80 create_mode=falloc growth_mode=off --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=falloc +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 81920/81920 bytes at offset 2048000 +80 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=80 create_mode=falloc growth_mode=metadata --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=falloc +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 81920/81920 bytes at offset 2048000 +80 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=80 create_mode=falloc growth_mode=falloc --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=falloc +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 81920/81920 bytes at offset 2048000 +80 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=80 create_mode=falloc growth_mode=full --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=falloc +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 81920/81920 bytes at offset 2048000 +80 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=80 create_mode=full growth_mode=off --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=full +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 81920/81920 bytes at offset 2048000 +80 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=80 create_mode=full growth_mode=metadata --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=full +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 81920/81920 bytes at offset 2048000 +80 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=80 create_mode=full growth_mode=falloc --- +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=full +Image resized. +wrote 2048000/2048000 bytes at offset 0 +1.953 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) +wrote 81920/81920 bytes at offset 2048000 +80 KiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) + +--- cluster_size=64k growth_size=80 create_mode=full growth_mode=full --- Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2048000 preallocation=full Image resized. wrote 2048000/2048000 bytes at offset 0