summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Wolf2015-04-16 11:36:10 +0200
committerKevin Wolf2015-09-14 16:51:36 +0200
commit90efa0eaef2d1bbd161db6fd7a74d8e5a00d35a8 (patch)
tree7d0dc337ca9f9b4bd12a94baf535d9fdb6bbd78b
parentqcow2: Factor out qcow2_update_options() (diff)
downloadqemu-90efa0eaef2d1bbd161db6fd7a74d8e5a00d35a8.tar.gz
qemu-90efa0eaef2d1bbd161db6fd7a74d8e5a00d35a8.tar.xz
qemu-90efa0eaef2d1bbd161db6fd7a74d8e5a00d35a8.zip
qcow2: Move qcow2_update_options() call up
qcow2_update_options() only updates some variables in BDRVQcowState and doesn't really depend on other parts of it being initialised yet, so it can be moved so that it immediately follows the other half of option handling code in qcow2_open(). Signed-off-by: Kevin Wolf <kwolf@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Max Reitz <mreitz@redhat.com>
-rw-r--r--block/qcow2.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/block/qcow2.c b/block/qcow2.c
index 4dd0699858..be6b3c24d5 100644
--- a/block/qcow2.c
+++ b/block/qcow2.c
@@ -979,6 +979,15 @@ static int qcow2_open(BlockDriverState *bs, QDict *options, int flags,
s->cache_clean_interval = cache_clean_interval;
cache_clean_timer_init(bs, bdrv_get_aio_context(bs));
+ /* Enable lazy_refcounts according to image and command line options */
+ ret = qcow2_update_options(bs, opts, flags, errp);
+ if (ret < 0) {
+ goto fail;
+ }
+
+ qemu_opts_del(opts);
+ opts = NULL;
+
s->cluster_cache = g_malloc(s->cluster_size);
/* one more sector for decompressed data alignment */
s->cluster_data = qemu_try_blockalign(bs->file, QCOW_MAX_CRYPT_CLUSTERS
@@ -1063,15 +1072,6 @@ static int qcow2_open(BlockDriverState *bs, QDict *options, int flags,
}
}
- /* Enable lazy_refcounts according to image and command line options */
- ret = qcow2_update_options(bs, opts, flags, errp);
- if (ret < 0) {
- goto fail;
- }
-
- qemu_opts_del(opts);
- opts = NULL;
-
#ifdef DEBUG_ALLOC
{
BdrvCheckResult result = {0};