[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 07/19] block: vhdx - change .vhdx_create default bloc
From: |
Stefan Hajnoczi |
Subject: |
[Qemu-devel] [PULL 07/19] block: vhdx - change .vhdx_create default block state to ZERO |
Date: |
Fri, 12 Dec 2014 17:09:53 +0000 |
From: Jeff Cody <address@hidden>
The VHDX spec specifies that the default new block state is
PAYLOAD_BLOCK_NOT_PRESENT for a dynamic VHDX image, and
PAYLOAD_BLOCK_FULLY_PRESENT for a fixed VHDX image.
However, in order to create space-efficient VHDX images with qemu-img
convert, it is desirable to be able to set has_zero_init to true for
VHDX.
There is currently an option when creating VHDX images, to use block
state ZERO for new blocks. However, this currently defaults to 'off'.
In order to be able to eventually set has_zero_init to true for VHDX,
this needs to default to 'on'.
This patch changes the default to 'on', and provides some help
information to warn against setting it to 'off' when using qemu-img
convert.
[Max Reitz pointed out that a full stop was missing at the end of the
VHDX_BLOCK_OPT_ZERO option help text. I have added it.
--Stefan]
Signed-off-by: Jeff Cody <address@hidden>
Reviewed-by: Max Reitz <address@hidden>
Message-id: address@hidden
Signed-off-by: Stefan Hajnoczi <address@hidden>
---
block/vhdx.c | 6 ++++--
qemu-doc.texi | 6 +++++-
2 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/block/vhdx.c b/block/vhdx.c
index bec10bd..46d504c 100644
--- a/block/vhdx.c
+++ b/block/vhdx.c
@@ -1774,7 +1774,7 @@ static int vhdx_create(const char *filename, QemuOpts
*opts, Error **errp)
log_size = qemu_opt_get_size_del(opts, VHDX_BLOCK_OPT_LOG_SIZE, 0);
block_size = qemu_opt_get_size_del(opts, VHDX_BLOCK_OPT_BLOCK_SIZE, 0);
type = qemu_opt_get_del(opts, BLOCK_OPT_SUBFMT);
- use_zero_blocks = qemu_opt_get_bool_del(opts, VHDX_BLOCK_OPT_ZERO, false);
+ use_zero_blocks = qemu_opt_get_bool_del(opts, VHDX_BLOCK_OPT_ZERO, true);
if (image_size > VHDX_MAX_IMAGE_SIZE) {
error_setg_errno(errp, EINVAL, "Image size too large; max of 64TB");
@@ -1936,7 +1936,9 @@ static QemuOptsList vhdx_create_opts = {
{
.name = VHDX_BLOCK_OPT_ZERO,
.type = QEMU_OPT_BOOL,
- .help = "Force use of payload blocks of type 'ZERO'. Non-standard."
+ .help = "Force use of payload blocks of type 'ZERO'. "\
+ "Non-standard, but default. Do not set to 'off' when "\
+ "using 'qemu-img convert' with subformat=dynamic."
},
{ NULL }
}
diff --git a/qemu-doc.texi b/qemu-doc.texi
index ad418f8..aabe8df 100644
--- a/qemu-doc.texi
+++ b/qemu-doc.texi
@@ -698,7 +698,11 @@ Supported options:
Specifies which VHDX subformat to use. Valid options are
@code{dynamic} (default) and @code{fixed}.
@item block_state_zero
-Force use of payload blocks of type 'ZERO'.
+Force use of payload blocks of type 'ZERO'. Can be set to @code{on} (default)
+or @code{off}. When set to @code{off}, new blocks will be created as
address@hidden, which means parsers are free to return
+arbitrary data for those blocks. Do not set to @code{off} when using
address@hidden convert} with @code{subformat=dynamic}.
@item block_size
Block size; min 1 MB, max 256 MB. 0 means auto-calculate based on image size.
@item log_size
--
2.1.0
- [Qemu-devel] [PULL 00/19] Block patches, Stefan Hajnoczi, 2014/12/12
- [Qemu-devel] [PULL 01/19] block migration: fix return value, Stefan Hajnoczi, 2014/12/12
- [Qemu-devel] [PULL 02/19] vmdk: Fix error for JSON descriptor file names, Stefan Hajnoczi, 2014/12/12
- [Qemu-devel] [PULL 03/19] iotests: Add test for vmdk JSON file names, Stefan Hajnoczi, 2014/12/12
- [Qemu-devel] [PULL 04/19] block/rbd: fix memory leak, Stefan Hajnoczi, 2014/12/12
- [Qemu-devel] [PULL 05/19] block: vhdx - remove redundant comments, Stefan Hajnoczi, 2014/12/12
- [Qemu-devel] [PULL 06/19] block: vhdx - update PAYLOAD_BLOCK_UNMAPPED value to match 1.00 spec, Stefan Hajnoczi, 2014/12/12
- [Qemu-devel] [PULL 07/19] block: vhdx - change .vhdx_create default block state to ZERO,
Stefan Hajnoczi <=
- [Qemu-devel] [PULL 08/19] qemu-io: Add sigraise command, Stefan Hajnoczi, 2014/12/12
- [Qemu-devel] [PULL 09/19] iotests: Filter for "Killed" in qemu-io output, Stefan Hajnoczi, 2014/12/12
- [Qemu-devel] [PULL 10/19] iotests: Fix test 039, Stefan Hajnoczi, 2014/12/12
- [Qemu-devel] [PULL 11/19] block: vhdx - set .bdrv_has_zero_init to bdrv_has_zero_init_1, Stefan Hajnoczi, 2014/12/12
- [Qemu-devel] [PULL 13/19] block: Don't add trailing space in "Formating..." message, Stefan Hajnoczi, 2014/12/12
- [Qemu-devel] [PULL 14/19] block: drop unused bdrv_clear_incoming_migration_all() prototype, Stefan Hajnoczi, 2014/12/12
- [Qemu-devel] [PULL 15/19] linux-aio: queue requests that cannot be submitted, Stefan Hajnoczi, 2014/12/12
- [Qemu-devel] [PULL 16/19] linux-aio: track whether the queue is blocked, Stefan Hajnoczi, 2014/12/12
- [Qemu-devel] [PULL 17/19] linux-aio: rename LaioQueue idx field to "n", Stefan Hajnoczi, 2014/12/12
- [Qemu-devel] [PULL 18/19] linux-aio: drop return code from laio_io_unplug and ioq_submit, Stefan Hajnoczi, 2014/12/12