From: Maxim Levitsky Date: Thu, 17 Dec 2020 17:09:04 +0000 (+0200) Subject: block: qcow2: remove the created file on initialization error X-Git-Tag: v6.0.0-rc0~85^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6094cbeb72117204f3302a4581415ee1dc33a879;p=thirdparty%2Fqemu.git 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 Reviewed-by: Alberto Garcia Message-Id: <20201217170904.946013-4-mlevitsk@redhat.com> Reviewed-by: Vladimir Sementsov-Ogievskiy Signed-off-by: Kevin Wolf --- diff --git a/block/qcow2.c b/block/qcow2.c index 5d94f45be95..d9f49a52e77 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);