diff options
Diffstat (limited to 'block')
-rw-r--r-- | block/qcow2.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/block/qcow2.c b/block/qcow2.c index 57fd43d7ae..2c1cd0a446 100644 --- a/block/qcow2.c +++ b/block/qcow2.c @@ -297,14 +297,6 @@ static int qcow2_open(BlockDriverState *bs, int flags) goto fail; } - if (!bs->read_only && s->autoclear_features != 0) { - s->autoclear_features = 0; - ret = qcow2_update_header(bs); - if (ret < 0) { - goto fail; - } - } - /* Check support for various header values */ if (header.refcount_order != 4) { report_unsupported(bs, "%d bit reference counts", @@ -408,6 +400,15 @@ static int qcow2_open(BlockDriverState *bs, int flags) goto fail; } + /* Clear unknown autoclear feature bits */ + if (!bs->read_only && s->autoclear_features != 0) { + s->autoclear_features = 0; + ret = qcow2_update_header(bs); + if (ret < 0) { + goto fail; + } + } + /* Initialise locks */ qemu_co_mutex_init(&s->lock); |