[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v3 4/8] block: truncate: Don't make backing file data visible
From: |
Max Reitz |
Subject: |
Re: [PATCH v3 4/8] block: truncate: Don't make backing file data visible |
Date: |
Mon, 25 Nov 2019 13:08:17 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.1.1 |
On 22.11.19 17:05, Kevin Wolf wrote:
> When extending the size of an image that has a backing file larger than
> its old size, make sure that the backing file data doesn't become
> visible in the guest, but the added area is properly zeroed out.
>
> Consider the following scenario where the overlay is shorter than its
> backing file:
>
> base.qcow2: AAAAAAAA
> overlay.qcow2: BBBB
>
> When resizing (extending) overlay.qcow2, the new blocks should not stay
> unallocated and make the additional As from base.qcow2 visible like
> before this patch, but zeros should be read.
>
> A similar case happens with the various variants of a commit job when an
> intermediate file is short (- for unallocated):
>
> base.qcow2: A-A-AAAA
> mid.qcow2: BB-B
> top.qcow2: C--C--C-
>
> After commit top.qcow2 to mid.qcow2, the following happens:
>
> mid.qcow2: CB-C00C0 (correct result)
> mid.qcow2: CB-C--C- (before this fix)
>
> Without the fix, blocks that previously read as zeros on top.qcow2
> suddenly turn into A.
>
> Signed-off-by: Kevin Wolf <address@hidden>
> ---
> block/io.c | 33 +++++++++++++++++++++++++++++++++
> 1 file changed, 33 insertions(+)
Reviewed-by: Max Reitz <address@hidden>
signature.asc
Description: OpenPGP digital signature
- [PATCH for-4.2? v3 0/8] block: Fix resize (extending) of short overlays, Kevin Wolf, 2019/11/22
- [PATCH v3 1/8] block: bdrv_co_do_pwrite_zeroes: 64 bit 'bytes' parameter, Kevin Wolf, 2019/11/22
- [PATCH v3 2/8] block: Add no_fallback parameter to bdrv_co_truncate(), Kevin Wolf, 2019/11/22
- [PATCH v3 4/8] block: truncate: Don't make backing file data visible, Kevin Wolf, 2019/11/22
- [PATCH v3 3/8] qcow2: Declare BDRV_REQ_NO_FALLBACK supported, Kevin Wolf, 2019/11/22
- [PATCH v3 5/8] iotests: Add qemu_io_log(), Kevin Wolf, 2019/11/22
- [PATCH v3 6/8] iotests: Fix timeout in run_job(), Kevin Wolf, 2019/11/22
- [PATCH v3 7/8] iotests: Support job-complete in run_job(), Kevin Wolf, 2019/11/22
- [PATCH v3 8/8] iotests: Test committing to short backing file, Kevin Wolf, 2019/11/22