aboutsummaryrefslogtreecommitdiff
path: root/block/qcow2.h
diff options
context:
space:
mode:
authorAnton Nefedov <anton.nefedov@virtuozzo.com>2019-05-16 17:27:49 +0300
committerMax Reitz <mreitz@redhat.com>2019-05-28 20:30:55 +0200
commitc8bb23cbdbe32f5c326365e0a82e1b0e68cdcd8a (patch)
tree7169d73a97be9364e328610798c54f8af16b6fa4 /block/qcow2.h
parent330c72957196e0ae382abcaa97ebf4eb9bc8574f (diff)
downloadqemu-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.h6
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