]> xenbits.xensource.com Git - libvirt.git/commitdiff
conf: domain: Add helper to check whether a domain def requires use of PR
authorPeter Krempa <pkrempa@redhat.com>
Mon, 14 May 2018 05:53:09 +0000 (07:53 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Wed, 16 May 2018 04:32:29 +0000 (06:32 +0200)
Extract the lookup code so that it can be reused later.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
src/conf/domain_conf.c
src/conf/domain_conf.h
src/libvirt_private.syms
src/qemu/qemu_process.c

index 2a4a2b85217b17f81736100c1bb546b75369ec6a..ad2b280c6f480015d6dd4dfdb3ca8945b05ce741 100644 (file)
@@ -29579,3 +29579,24 @@ virDomainDiskGetDetectZeroesMode(virDomainDiskDiscard discard,
 
     return detect_zeroes;
 }
+
+
+/**
+ * virDomainDefHasManagedPR:
+ * @def: domain definition
+ *
+ * Returns true if any of the domain disks requires the use of the managed
+ * persistent reservations infrastructure.
+ */
+bool
+virDomainDefHasManagedPR(const virDomainDef *def)
+{
+    size_t i;
+
+    for (i = 0; i < def->ndisks; i++) {
+        if (virStoragePRDefIsManaged(def->disks[i]->src->pr))
+            return true;
+    }
+
+    return false;
+}
index 28704f9b5f97e24cdf6c9c313dc70d59ea8e0f88..a78fdee40c65f49dd8ea182aacc309e6efa369f8 100644 (file)
@@ -3544,4 +3544,7 @@ int
 virDomainDiskGetDetectZeroesMode(virDomainDiskDiscard discard,
                                  virDomainDiskDetectZeroes detect_zeroes);
 
+bool
+virDomainDefHasManagedPR(const virDomainDef *def);
+
 #endif /* __DOMAIN_CONF_H */
index 05babb7ac02bbae87d4f288812494d84c9827a70..3dece252df08678736ca488151113e323d5b2646 100644 (file)
@@ -275,6 +275,7 @@ virDomainDefGetVcpus;
 virDomainDefGetVcpusMax;
 virDomainDefGetVcpusTopology;
 virDomainDefHasDeviceAddress;
+virDomainDefHasManagedPR;
 virDomainDefHasMemballoon;
 virDomainDefHasMemoryHotplug;
 virDomainDefHasUSB;
index af29bcc59ee819199c55b71e9a0ebfae30927658..5b73a619629448af9ecbe778bcb4e48569bfb6ba 100644 (file)
@@ -2748,26 +2748,6 @@ qemuProcessStartManagedPRDaemon(virDomainObjPtr vm)
 }
 
 
-static int
-qemuProcessMaybeStartManagedPRDaemon(virDomainObjPtr vm)
-{
-    bool hasManaged = false;
-    size_t i;
-
-    for (i = 0; i < vm->def->ndisks; i++) {
-        if (virStoragePRDefIsManaged(vm->def->disks[i]->src->pr)) {
-            hasManaged = true;
-            break;
-        }
-    }
-
-    if (!hasManaged)
-        return 0;
-
-    return qemuProcessStartManagedPRDaemon(vm);
-}
-
-
 static int
 qemuProcessInitPasswords(virQEMUDriverPtr driver,
                          virDomainObjPtr vm,
@@ -6285,7 +6265,8 @@ qemuProcessLaunch(virConnectPtr conn,
         goto cleanup;
 
     VIR_DEBUG("Setting up managed PR daemon");
-    if (qemuProcessMaybeStartManagedPRDaemon(vm) < 0)
+    if (virDomainDefHasManagedPR(vm->def) &&
+        qemuProcessStartManagedPRDaemon(vm) < 0)
         goto cleanup;
 
     VIR_DEBUG("Setting domain security labels");