[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 07/17] qemu-img: always probe the input image for
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PATCH v2 07/17] qemu-img: always probe the input image for allocated sectors |
Date: |
Tue, 16 Jul 2013 18:29:18 +0200 |
qemu-img convert is assuming "that sectors which are unallocated in the input
image are present in both the output's and input's base images", but it is
only doing this if the output image is zero initialized. And checking if
the output image is zero initialized does not make much sense if the
output image is copy-on-write. Always do the test.
Signed-off-by: Paolo Bonzini <address@hidden>
---
qemu-img.c | 26 ++++++++++++--------------
1 file changed, 12 insertions(+), 14 deletions(-)
diff --git a/qemu-img.c b/qemu-img.c
index a4957eb..3faffee 100644
--- a/qemu-img.c
+++ b/qemu-img.c
@@ -1476,21 +1476,19 @@ static int img_convert(int argc, char **argv)
n = bs_offset + bs_sectors - sector_num;
}
- if (has_zero_init) {
- /* If the output image is being created as a copy on write
image,
- assume that sectors which are unallocated in the input image
- are present in both the output's and input's base images (no
- need to copy them). */
- if (out_baseimg) {
- if (!bdrv_is_allocated(bs[bs_i], sector_num - bs_offset,
- n, &n1)) {
- sector_num += n1;
- continue;
- }
- /* The next 'n1' sectors are allocated in the input image.
Copy
- only those as they may be followed by unallocated
sectors. */
- n = n1;
+ /* If the output image is being created as a copy on write image,
+ assume that sectors which are unallocated in the input image
+ are present in both the output's and input's base images (no
+ need to copy them). */
+ if (out_baseimg) {
+ if (!bdrv_is_allocated(bs[bs_i], sector_num - bs_offset,
+ n, &n1)) {
+ sector_num += n1;
+ continue;
}
+ /* The next 'n1' sectors are allocated in the input image. Copy
+ only those as they may be followed by unallocated sectors.
*/
+ n = n1;
} else {
n1 = n;
}
--
1.8.3.1
- [Qemu-devel] [PATCH v2 15/17] raw-posix: detect XFS unwritten extents, (continued)
- [Qemu-devel] [PATCH v2 15/17] raw-posix: detect XFS unwritten extents, Paolo Bonzini, 2013/07/16
- [Qemu-devel] [PATCH v2 16/17] block: add default get_block_status implementation for protocols, Paolo Bonzini, 2013/07/16
- [Qemu-devel] [PATCH v2 17/17] block: look for zero blocks in bs->file, Paolo Bonzini, 2013/07/16
- [Qemu-devel] [PATCH v2 06/17] block: expect errors from bdrv_co_is_allocated, Paolo Bonzini, 2013/07/16
- [Qemu-devel] [PATCH v2 07/17] qemu-img: always probe the input image for allocated sectors,
Paolo Bonzini <=
- [Qemu-devel] [PATCH v2 05/17] block: remove bdrv_is_allocated_above/bdrv_co_is_allocated_above distinction, Paolo Bonzini, 2013/07/16
- Re: [Qemu-devel] [PATCH v2 00/17] Add qemu-img subcommand to dump file metadata, Eric Blake, 2013/07/16
Re: [Qemu-devel] [PATCH v2 00/17] Add qemu-img subcommand to dump file metadata, Peter Lieven, 2013/07/18