diff options
author | Anton Nefedov <anton.nefedov@virtuozzo.com> | 2019-05-16 17:27:49 +0300 |
---|---|---|
committer | Max Reitz <mreitz@redhat.com> | 2019-05-28 20:30:55 +0200 |
commit | c8bb23cbdbe32f5c326365e0a82e1b0e68cdcd8a (patch) | |
tree | 7169d73a97be9364e328610798c54f8af16b6fa4 /block/qcow2.h | |
parent | 330c72957196e0ae382abcaa97ebf4eb9bc8574f (diff) | |
download | qemu-c8bb23cbdbe32f5c326365e0a82e1b0e68cdcd8a.zip qemu-c8bb23cbdbe32f5c326365e0a82e1b0e68cdcd8a.tar.gz qemu-c8bb23cbdbe32f5c326365e0a82e1b0e68cdcd8a.tar.bz2 |
qcow2: skip writing zero buffers to empty COW areas
If COW areas of the newly allocated clusters are zeroes on the backing
image, efficient bdrv_write_zeroes(flags=BDRV_REQ_NO_FALLBACK) can be
used on the whole cluster instead of writing explicit zero buffers later
in perform_cow().
iotest 060:
write to the discarded cluster does not trigger COW anymore.
Use a backing image instead.
Signed-off-by: Anton Nefedov <anton.nefedov@virtuozzo.com>
Message-id: 20190516142749.81019-2-anton.nefedov@virtuozzo.com
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Alberto Garcia <berto@igalia.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
Diffstat (limited to 'block/qcow2.h')
-rw-r--r-- | block/qcow2.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/block/qcow2.h b/block/qcow2.h index e873ae5..567375e 100644 --- a/block/qcow2.h +++ b/block/qcow2.h @@ -405,6 +405,12 @@ typedef struct QCowL2Meta */ Qcow2COWRegion cow_end; + /* + * Indicates that COW regions are already handled and do not require + * any more processing. + */ + bool skip_cow; + /** * The I/O vector with the data from the actual guest write request. * If non-NULL, this is meant to be merged together with the data |