[REPOST PATCH 2/6] storage: Cleanup failures virStorageBackendCreateExecCommand

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



After a successful qemu-img/qcow-create of the backing file, if we
fail to stat the file, change it owner/group, or mode, then the
cleanup path should delete the file.

Signed-off-by: John Ferlan <jferlan@xxxxxxxxxx>
---
 src/storage/storage_backend.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/storage/storage_backend.c b/src/storage/storage_backend.c
index 037d6d7..487c914 100644
--- a/src/storage/storage_backend.c
+++ b/src/storage/storage_backend.c
@@ -678,6 +678,7 @@ virStorageBackendCreateExecCommand(virStoragePoolObjPtr pool,
     gid_t gid;
     uid_t uid;
     mode_t mode;
+    bool filecreated = false;
     int ret = -1;
 
     if ((pool->def->type == VIR_STORAGE_POOL_NETFS)
@@ -708,6 +709,9 @@ virStorageBackendCreateExecCommand(virStoragePoolObjPtr pool,
 
     if (virCommandRun(cmd, NULL) < 0)
         goto cleanup;
+
+    filecreated = true;
+
     if (stat(vol->target.path, &st) < 0) {
         virReportSystemError(errno,
                              _("failed to create %s"), vol->target.path);
@@ -739,6 +743,8 @@ virStorageBackendCreateExecCommand(virStoragePoolObjPtr pool,
     ret = 0;
 
  cleanup:
+    if (ret < 0 && filecreated)
+        unlink(vol->target.path);
     return ret;
 }
 
-- 
2.1.0

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list



[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]