diff options
author | Stefan Hajnoczi <stefanha@linux.vnet.ibm.com> | 2010-10-18 16:53:53 +0100 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2010-10-22 14:49:35 +0200 |
commit | 72893756e0da74fcb626c52dfff1fc6e9de84f0c (patch) | |
tree | ca761120b722477d05c62f2a1d9cd25bd5352ee3 /block/qcow2.h | |
parent | d03703c81a202cea156811e5dbc8e88627c19986 (diff) |
qcow2: Support exact L1 table growth
The L1 table grow operation includes a size calculation that bumps up
the new L1 table size in order to anticipate the size needs of vmstate
data. This helps reduce the number of times that the L1 table has to be
grown when vmstate data is appended.
This size overhead is not necessary during image creation,
bdrv_truncate(), or snapshot goto operations. In fact, existing
qemu-iotests that exercise table growth are no longer able to trigger it
because image creation preallocates an L1 table that is too large after
changes to qcow_create2().
This patch keeps the size calculation but also adds exact growth for
callers that do not want to inflate the L1 table size unnecessarily.
Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'block/qcow2.h')
-rw-r--r-- | block/qcow2.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/block/qcow2.h b/block/qcow2.h index 356a34af43..add710ba76 100644 --- a/block/qcow2.h +++ b/block/qcow2.h @@ -188,7 +188,7 @@ int qcow2_update_snapshot_refcount(BlockDriverState *bs, int qcow2_check_refcounts(BlockDriverState *bs, BdrvCheckResult *res); /* qcow2-cluster.c functions */ -int qcow2_grow_l1_table(BlockDriverState *bs, int min_size); +int qcow2_grow_l1_table(BlockDriverState *bs, int min_size, bool exact_size); void qcow2_l2_cache_reset(BlockDriverState *bs); int qcow2_decompress_cluster(BlockDriverState *bs, uint64_t cluster_offset); void qcow2_encrypt_sectors(BDRVQcowState *s, int64_t sector_num, |