diff options
author | Maxim Levitsky <mlevitsk@redhat.com> | 2020-12-17 19:09:04 +0200 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2021-02-15 15:10:14 +0100 |
commit | 6094cbeb72117204f3302a4581415ee1dc33a879 (patch) | |
tree | 2581645d9cb03b067cb8b3906f4929d02db83771 /block/qcow2.c | |
parent | a890f08e586fd81946c51dae6a878d64486b1364 (diff) |
block: qcow2: remove the created file on initialization error
If the qcow initialization fails, we should remove the file if it was
already created, to avoid leaving stale files around.
We already do this for luks raw images.
Signed-off-by: Maxim Levitsky <mlevitsk@redhat.com>
Reviewed-by: Alberto Garcia <berto@igalia.com>
Message-Id: <20201217170904.946013-4-mlevitsk@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'block/qcow2.c')
-rw-r--r-- | block/qcow2.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/block/qcow2.c b/block/qcow2.c index 5d94f45be9..d9f49a52e7 100644 --- a/block/qcow2.c +++ b/block/qcow2.c @@ -3846,12 +3846,14 @@ static int coroutine_fn qcow2_co_create_opts(BlockDriver *drv, /* Create the qcow2 image (format layer) */ ret = qcow2_co_create(create_options, errp); +finish: if (ret < 0) { - goto finish; + bdrv_co_delete_file_noerr(bs); + bdrv_co_delete_file_noerr(data_bs); + } else { + ret = 0; } - ret = 0; -finish: qobject_unref(qdict); bdrv_unref(bs); bdrv_unref(data_bs); |