From: Max Reitz <mreitz@redhat.com>
To: Jeff Cody <jcody@redhat.com>, qemu-devel@nongnu.org
Cc: kwolf@redhat.com, amulya.lokesha@emc.com, stefanha@redhat.com
Subject: Re: [Qemu-devel] [PATCH 2/4] block: vhdx - update PAYLOAD_BLOCK_UNMAPPED value to match 1.00 spec
Date: Mon, 08 Dec 2014 09:44:25 +0100 [thread overview]
Message-ID: <548564E9.80600@redhat.com> (raw)
In-Reply-To: <8a4d2da73a8dbc04cde62bea782fc09ff84b1cf1.1418018421.git.jcody@redhat.com>
On 2014-12-08 at 07:07, Jeff Cody wrote:
> The 0.95 VHDX spec defined PAYLOAD_BLOCK_UNMAPPED to be 5. The 1.00
> VHDX spec redefines PAYLOAD_BLOCK_UNMAPPED to be 3 instead.
>
> The original value of 5 is now an undefined state in the spec, but it
> should be safe to treat it the same and return zeros for data read.
> This way, we can maintain compatibility with any images out in the wild
> that may have been created in accordance to the 0.95 spec.
>
> Reported-by: Kevin Wolf <kwolf@redhat.com>
> Signed-off-by: Jeff Cody <jcody@redhat.com>
> ---
> block/vhdx.c | 3 ++-
> block/vhdx.h | 3 ++-
> 2 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/block/vhdx.c b/block/vhdx.c
> index f1e1e2e..bec10bd 100644
> --- a/block/vhdx.c
> +++ b/block/vhdx.c
> @@ -1111,6 +1111,7 @@ static coroutine_fn int vhdx_co_readv(BlockDriverState *bs, int64_t sector_num,
> case PAYLOAD_BLOCK_NOT_PRESENT: /* fall through */
> case PAYLOAD_BLOCK_UNDEFINED:
> case PAYLOAD_BLOCK_UNMAPPED:
> + case PAYLOAD_BLOCK_UNMAPPED_v095:
> case PAYLOAD_BLOCK_ZERO:
> /* return zero */
> qemu_iovec_memset(&hd_qiov, 0, 0, sinfo.bytes_avail);
> @@ -1277,10 +1278,10 @@ static coroutine_fn int vhdx_co_writev(BlockDriverState *bs, int64_t sector_num,
> sectors_to_write += iov2.iov_len >> BDRV_SECTOR_BITS;
> }
> }
> -
Was this line removal intended?
Anyway:
Reviewed-by: Max Reitz <mreitz@redhat.com>
> /* fall through */
> case PAYLOAD_BLOCK_NOT_PRESENT: /* fall through */
> case PAYLOAD_BLOCK_UNMAPPED:
> + case PAYLOAD_BLOCK_UNMAPPED_v095:
> case PAYLOAD_BLOCK_UNDEFINED:
> bat_prior_offset = sinfo.file_offset;
> ret = vhdx_allocate_block(bs, s, &sinfo.file_offset);
> diff --git a/block/vhdx.h b/block/vhdx.h
> index b4a12a0..7003ab7 100644
> --- a/block/vhdx.h
> +++ b/block/vhdx.h
> @@ -226,7 +226,8 @@ typedef struct QEMU_PACKED VHDXLogDataSector {
> #define PAYLOAD_BLOCK_NOT_PRESENT 0
> #define PAYLOAD_BLOCK_UNDEFINED 1
> #define PAYLOAD_BLOCK_ZERO 2
> -#define PAYLOAD_BLOCK_UNMAPPED 5
> +#define PAYLOAD_BLOCK_UNMAPPED 3
> +#define PAYLOAD_BLOCK_UNMAPPED_v095 5
> #define PAYLOAD_BLOCK_FULLY_PRESENT 6
> #define PAYLOAD_BLOCK_PARTIALLY_PRESENT 7
next prev parent reply other threads:[~2014-12-08 8:44 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-08 6:07 [Qemu-devel] [PATCH 0/4] VHDX Fixes for zero init Jeff Cody
2014-12-08 6:07 ` [Qemu-devel] [PATCH 1/4] block: vhdx - remove redundant comments Jeff Cody
2014-12-08 8:42 ` Max Reitz
2014-12-12 13:28 ` Stefan Hajnoczi
2014-12-15 9:04 ` Markus Armbruster
2014-12-08 6:07 ` [Qemu-devel] [PATCH 2/4] block: vhdx - update PAYLOAD_BLOCK_UNMAPPED value to match 1.00 spec Jeff Cody
2014-12-08 8:44 ` Max Reitz [this message]
2014-12-08 6:07 ` [Qemu-devel] [PATCH 3/4] block: vhdx - change .vhdx_create default block state to ZERO Jeff Cody
2014-12-08 8:48 ` Max Reitz
2014-12-08 6:07 ` [Qemu-devel] [PATCH 4/4] block: vhdx - set .bdrv_has_zero_init to bdrv_has_zero_init_1 Jeff Cody
2014-12-08 8:50 ` Max Reitz
2014-12-11 4:21 ` Lokesha, Amulya
2014-12-11 9:06 ` Max Reitz
2014-12-12 14:43 ` Lokesha, Amulya
2014-12-12 15:17 ` Jeff Cody
2014-12-12 15:59 ` Lokesha, Amulya
2014-12-17 10:46 ` Lokesha, Amulya
2014-12-17 12:14 ` Jeff Cody
2014-12-23 10:07 ` Lokesha, Amulya
2014-12-23 14:03 ` Jeff Cody
2015-01-06 10:30 ` Lokesha, Amulya
2014-12-12 15:44 ` [Qemu-devel] [PATCH 0/4] VHDX Fixes for zero init Stefan Hajnoczi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=548564E9.80600@redhat.com \
--to=mreitz@redhat.com \
--cc=amulya.lokesha@emc.com \
--cc=jcody@redhat.com \
--cc=kwolf@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.