[libvirt] [PATCH 5/6] qemu: domain: Unify disk source prepare steps

Peter Krempa pkrempa at redhat.com
Thu Nov 23 16:24:42 UTC 2017


Aggregate setup of various aspects of a disk source (secrets, TLS, ...)
into one function so that we don't need to call multiple across the code
base.
---
 src/qemu/qemu_domain.c  | 20 ++++++++++++++++++--
 src/qemu/qemu_domain.h  | 16 ++++++----------
 src/qemu/qemu_hotplug.c |  5 +----
 src/qemu/qemu_process.c |  5 +----
 4 files changed, 26 insertions(+), 20 deletions(-)

diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index f12450cc69..a5bfcfb48a 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -1449,7 +1449,7 @@ qemuDomainSecretStorageSourcePrepare(virConnectPtr conn,
  * Returns 0 on success, -1 on failure
  */

-int
+static int
 qemuDomainSecretDiskPrepare(virConnectPtr conn,
                             qemuDomainObjPrivatePtr priv,
                             virDomainDiskDefPtr disk)
@@ -7927,7 +7927,7 @@ qemuDomainPrepareChardevSource(virDomainDefPtr def,
  *
  * Returns 0 on success, -1 on bad config/failure
  */
-int
+static int
 qemuDomainPrepareDiskSourceTLS(virStorageSourcePtr src,
                                virQEMUDriverConfigPtr cfg)
 {
@@ -10425,3 +10425,19 @@ qemuDomainCheckMigrationCapabilities(virQEMUDriverPtr driver,
     virStringListFree(caps);
     return ret;
 }
+
+
+int
+qemuDomainPrepareDiskSource(virConnectPtr conn,
+                            virDomainDiskDefPtr disk,
+                            qemuDomainObjPrivatePtr priv,
+                            virQEMUDriverConfigPtr cfg)
+{
+    if (qemuDomainPrepareDiskSourceTLS(disk->src, cfg) < 0)
+        return -1;
+
+    if (qemuDomainSecretDiskPrepare(conn, priv, disk) < 0)
+        return -1;
+
+    return 0;
+}
diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h
index 9066f5d0f5..146b27dd57 100644
--- a/src/qemu/qemu_domain.h
+++ b/src/qemu/qemu_domain.h
@@ -839,11 +839,6 @@ qemuDomainSecretInfoTLSNew(virConnectPtr conn,
                            const char *srcAlias,
                            const char *secretUUID);

-int qemuDomainSecretDiskPrepare(virConnectPtr conn,
-                                qemuDomainObjPrivatePtr priv,
-                                virDomainDiskDefPtr disk)
-    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3);
-
 void qemuDomainSecretHostdevDestroy(virDomainHostdevDefPtr disk)
     ATTRIBUTE_NONNULL(1);

@@ -886,11 +881,6 @@ void qemuDomainPrepareChardevSource(virDomainDefPtr def,
                                     virQEMUDriverConfigPtr cfg)
     ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);

-int
-qemuDomainPrepareDiskSourceTLS(virStorageSourcePtr src,
-                               virQEMUDriverConfigPtr cfg)
-    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
-
 int qemuDomainPrepareShmemChardev(virDomainShmemDefPtr shmem)
     ATTRIBUTE_NONNULL(1);

@@ -1011,4 +1001,10 @@ qemuDomainCheckMigrationCapabilities(virQEMUDriverPtr driver,
                                      virDomainObjPtr vm,
                                      qemuDomainAsyncJob asyncJob);

+int
+qemuDomainPrepareDiskSource(virConnectPtr conn,
+                            virDomainDiskDefPtr disk,
+                            qemuDomainObjPrivatePtr priv,
+                            virQEMUDriverConfigPtr cfg);
+
 #endif /* __QEMU_DOMAIN_H__ */
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index a49480ecb4..44d48ca95a 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -384,7 +384,7 @@ qemuDomainAttachDiskGeneric(virConnectPtr conn,
     if (qemuAssignDeviceDiskAlias(vm->def, disk, priv->qemuCaps) < 0)
         goto error;

-    if (qemuDomainSecretDiskPrepare(conn, priv, disk) < 0)
+    if (qemuDomainPrepareDiskSource(conn, disk, priv, cfg) < 0)
         goto error;

     srcPriv = QEMU_DOMAIN_STORAGE_SOURCE_PRIVATE(disk->src);
@@ -401,9 +401,6 @@ qemuDomainAttachDiskGeneric(virConnectPtr conn,
     if (encinfo && qemuBuildSecretInfoProps(encinfo, &encobjProps) < 0)
         goto error;

-    if (qemuDomainPrepareDiskSourceTLS(disk->src, cfg) < 0)
-        goto error;
-
     if (disk->src->haveTLS &&
         qemuDomainAddDiskSrcTLSObject(driver, vm, disk->src,
                                       disk->info.alias) < 0)
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 6d242b1b51..d47c6d69be 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -5362,10 +5362,7 @@ qemuProcessPrepareDomainStorage(virConnectPtr conn,
             continue;
         }

-        if (qemuDomainPrepareDiskSourceTLS(disk->src, cfg) < 0)
-            return -1;
-
-        if (qemuDomainSecretDiskPrepare(conn, priv, disk) < 0)
+        if (qemuDomainPrepareDiskSource(conn, disk, priv, cfg) < 0)
             return -1;
     }

-- 
2.14.3




More information about the libvir-list mailing list