[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v7 14/25] qcow2: Allow creation with refcount or
From: |
Eric Blake |
Subject: |
Re: [Qemu-devel] [PATCH v7 14/25] qcow2: Allow creation with refcount order != 4 |
Date: |
Thu, 19 Feb 2015 16:19:40 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.4.0 |
On 02/18/2015 03:40 PM, Max Reitz wrote:
> Add a creation option to qcow2 for setting the refcount order of images
> to be created, and respect that option's value.
>
> This breaks some test outputs, fix them.
>
> Signed-off-by: Max Reitz <address@hidden>
> ---
> block/qcow2.c | 18 ++++++++
> include/block/block_int.h | 1 +
> tests/qemu-iotests/049.out | 108
> ++++++++++++++++++++++-----------------------
> tests/qemu-iotests/082.out | 41 ++++++++++++++---
> tests/qemu-iotests/085.out | 38 ++++++++--------
> 5 files changed, 126 insertions(+), 80 deletions(-)
>
> diff --git a/block/qcow2.c b/block/qcow2.c
> index a07f134..4cdbd7e 100644
> --- a/block/qcow2.c
> +++ b/block/qcow2.c
> @@ -2078,6 +2078,15 @@ static int qcow2_create(const char *filename, QemuOpts
> *opts, Error **errp)
> goto finish;
> }
>
> + refcount_bits = qemu_opt_get_number_del(opts, BLOCK_OPT_REFCOUNT_BITS,
> + refcount_bits);
> + if (refcount_bits > 64 || !is_power_of_2(refcount_bits)) {
> + error_setg(errp, "Refcount width must be a power of two and may not "
> + "exceed 64 bits");
> + ret = -EINVAL;
> + goto finish;
> + }
> +
> if (version < 3 && refcount_bits != 16) {
The ffs() I complained about in 11/25 occurs shortly after this point,
and is therefore safe even though it is called on a 64-bit number,
because we have capped the number to be in range even after truncation
to int.
Reviewed-by: Eric Blake <address@hidden>
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
- Re: [Qemu-devel] [PATCH v7 11/25] qcow2: refcount_order parameter for qcow2_create2, (continued)
[Qemu-devel] [PATCH v7 12/25] qcow2: Use symbolic macros in qcow2_amend_options, Max Reitz, 2015/02/18
[Qemu-devel] [PATCH v7 13/25] iotests: Prepare for refcount_bits option, Max Reitz, 2015/02/18
[Qemu-devel] [PATCH v7 15/25] iotests: Add test for different refcount widths, Max Reitz, 2015/02/18
[Qemu-devel] [PATCH v7 16/25] progress: Allow regressing progress, Max Reitz, 2015/02/18
[Qemu-devel] [PATCH v7 18/25] qcow2: Use error_report() in qcow2_amend_options(), Max Reitz, 2015/02/18
[Qemu-devel] [PATCH v7 14/25] qcow2: Allow creation with refcount order != 4, Max Reitz, 2015/02/18
- Re: [Qemu-devel] [PATCH v7 14/25] qcow2: Allow creation with refcount order != 4,
Eric Blake <=
[Qemu-devel] [PATCH v7 21/25] qcow2: Use intermediate helper CB for amend, Max Reitz, 2015/02/18
[Qemu-devel] [PATCH v7 19/25] qcow2: Use abort() instead of assert(false), Max Reitz, 2015/02/18
[Qemu-devel] [PATCH v7 17/25] block: Add opaque value to the amend CB, Max Reitz, 2015/02/18
[Qemu-devel] [PATCH v7 20/25] qcow2: Split upgrade/downgrade paths for amend, Max Reitz, 2015/02/18
[Qemu-devel] [PATCH v7 22/25] qcow2: Add function for refcount order amendment, Max Reitz, 2015/02/18
[Qemu-devel] [PATCH v7 23/25] qcow2: Invoke refcount order amendment function, Max Reitz, 2015/02/18
[Qemu-devel] [PATCH v7 24/25] qcow2: Point to amend function in check, Max Reitz, 2015/02/18
[Qemu-devel] [PATCH v7 25/25] iotests: Extend test 112 for qemu-img amend, Max Reitz, 2015/02/18