]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/libvirt.git/commitdiff
qemu: Fix startupPolicy regression
authorJiri Denemark <jdenemar@redhat.com>
Mon, 18 Mar 2013 13:11:58 +0000 (14:11 +0100)
committerJiri Denemark <jdenemar@redhat.com>
Mon, 18 Mar 2013 13:11:58 +0000 (14:11 +0100)
Commit 82d5fe543720da6d83c1d6bfa1c347d7d9fda278

    qemu: check backing chains even when cgroup is omitted

added backing file checks just before the code that removes optional
disks if they are not present. However, the backing chain code fails in
case the disk file does not exist, which makes qemuProcessStart fail
regardless on configured startupPolicy.

Note that startupPolicy implementation is still wrong after this patch
since it only check the first file in a possible chain. It should rather
check the complete backing chain. But this is an existing limitation
that can be solved later. After all, startupPolicy is most useful for
CDROM images and they won't make use of backing files in most cases.

src/qemu/qemu_process.c

index 1941d4eed112bc77051fdb2e0d82e0191eb66f91..3d2b7d6c428e9dd8cd92f838892d2f54eb14a6e9 100644 (file)
@@ -3621,14 +3621,15 @@ int qemuProcessStart(virConnectPtr conn,
         goto cleanup;
 
     VIR_DEBUG("Checking for CDROM and floppy presence");
+    if (qemuDomainCheckDiskPresence(driver, vm,
+                                    flags & VIR_QEMU_PROCESS_START_COLD) < 0)
+        goto cleanup;
+
     for (i = 0; i < vm->def->ndisks ; i++) {
         if (qemuDomainDetermineDiskChain(driver, vm->def->disks[i],
                                          false) < 0)
             goto cleanup;
     }
-    if (qemuDomainCheckDiskPresence(driver, vm,
-                                    flags & VIR_QEMU_PROCESS_START_COLD) < 0)
-        goto cleanup;
 
     /* Get the advisory nodeset from numad if 'placement' of
      * either <vcpu> or <numatune> is 'auto'.