]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: process: Setup disk secrets when preparing disks
authorPeter Krempa <pkrempa@redhat.com>
Wed, 8 Nov 2017 20:11:47 +0000 (21:11 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Mon, 13 Nov 2017 12:29:58 +0000 (13:29 +0100)
Setup everything related to disks in one place rather than calling in
from various places.

The change to ordering of the setup steps is necessary since secrets
need the master key to be present.

src/qemu/qemu_domain.c
src/qemu/qemu_process.c

index db5af101914a5a55d104f4c2f03d7a16f4c46d76..6d7827220e0c5a778b80cb11d6f0e0917558aaf4 100644 (file)
@@ -1647,10 +1647,7 @@ qemuDomainSecretPrepare(virConnectPtr conn,
     size_t i;
     int ret = -1;
 
-    for (i = 0; i < vm->def->ndisks; i++) {
-        if (qemuDomainSecretDiskPrepare(conn, priv, vm->def->disks[i]) < 0)
-            goto cleanup;
-    }
+    /* disk secrets are prepared when preparing disks */
 
     for (i = 0; i < vm->def->nhostdevs; i++) {
         if (qemuDomainSecretHostdevPrepare(conn, priv,
index 18dd3aa465b414b5cb50e0ac7e3d2baa0a550936..6d242b1b51aa2c963fc5ae91587c931926827aed 100644 (file)
@@ -5343,6 +5343,7 @@ static int
 qemuProcessPrepareDomainStorage(virConnectPtr conn,
                                 virQEMUDriverPtr driver,
                                 virDomainObjPtr vm,
+                                qemuDomainObjPrivatePtr priv,
                                 virQEMUDriverConfigPtr cfg,
                                 unsigned int flags)
 {
@@ -5363,6 +5364,9 @@ qemuProcessPrepareDomainStorage(virConnectPtr conn,
 
         if (qemuDomainPrepareDiskSourceTLS(disk->src, cfg) < 0)
             return -1;
+
+        if (qemuDomainSecretDiskPrepare(conn, priv, disk) < 0)
+            return -1;
     }
 
     return 0;
@@ -5467,18 +5471,18 @@ qemuProcessPrepareDomain(virConnectPtr conn,
     if (qemuProcessSetupGraphics(driver, vm, flags) < 0)
         goto cleanup;
 
-    VIR_DEBUG("Setting up storage");
-    if (qemuProcessPrepareDomainStorage(conn, driver, vm, cfg, flags) < 0)
-        goto cleanup;
-
     VIR_DEBUG("Create domain masterKey");
     if (qemuDomainMasterKeyCreate(vm) < 0)
         goto cleanup;
 
+    VIR_DEBUG("Setting up storage");
+    if (qemuProcessPrepareDomainStorage(conn, driver, vm, priv, cfg, flags) < 0)
+        goto cleanup;
+
     VIR_DEBUG("Prepare chardev source backends for TLS");
     qemuDomainPrepareChardevSource(vm->def, cfg);
 
-    VIR_DEBUG("Add secrets to disks, hostdevs, and chardevs");
+    VIR_DEBUG("Add secrets to hostdevs and chardevs");
     if (qemuDomainSecretPrepare(conn, driver, vm) < 0)
         goto cleanup;