From 7921e9b088cf0aec34766ed3d7432fcdf66e3ea9 Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Mon, 12 Aug 2019 13:47:36 +0200 Subject: [PATCH] qemu: Remove cleanup label in qemuDomainSnapshotPrepareDiskExternal MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Refactor the code to avoid having a cleanup label. This will simplify the change necessary when restricting this check in an upcoming patch. Signed-off-by: Peter Krempa Reviewed-by: Ján Tomko --- src/qemu/qemu_driver.c | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 6e3bab904a..ac235c9cc6 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -14983,8 +14983,9 @@ qemuDomainSnapshotPrepareDiskExternal(virDomainDiskDefPtr disk, bool active, bool reuse) { - int ret = -1; struct stat st; + int err; + int rc; if (disk->src->readonly) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, @@ -15010,31 +15011,32 @@ qemuDomainSnapshotPrepareDiskExternal(virDomainDiskDefPtr disk, if (virStorageFileInit(snapdisk->src) < 0) return -1; - if (virStorageFileStat(snapdisk->src, &st) < 0) { - if (errno != ENOENT) { - virReportSystemError(errno, + rc = virStorageFileStat(snapdisk->src, &st); + err = errno; + + virStorageFileDeinit(snapdisk->src); + + if (rc < 0) { + if (err != ENOENT) { + virReportSystemError(err, _("unable to stat for disk %s: %s"), snapdisk->name, snapdisk->src->path); - goto cleanup; + return -1; } else if (reuse) { - virReportSystemError(errno, + virReportSystemError(err, _("missing existing file for disk %s: %s"), snapdisk->name, snapdisk->src->path); - goto cleanup; + return -1; } } else if (!S_ISBLK(st.st_mode) && st.st_size && !reuse) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("external snapshot file for disk %s already " "exists and is not a block device: %s"), snapdisk->name, snapdisk->src->path); - goto cleanup; + return -1; } - ret = 0; - - cleanup: - virStorageFileDeinit(snapdisk->src); - return ret; + return 0; } -- 2.39.5