99cbc7
From c20e818be2240b2399a0d23d8b819e525a2a4d92 Mon Sep 17 00:00:00 2001
99cbc7
Message-Id: <c20e818be2240b2399a0d23d8b819e525a2a4d92@dist-git>
99cbc7
From: Michal Privoznik <mprivozn@redhat.com>
99cbc7
Date: Wed, 11 Jul 2018 17:27:24 +0200
99cbc7
Subject: [PATCH] qemuDomainValidateStorageSource: Relax PR validation
99cbc7
MIME-Version: 1.0
99cbc7
Content-Type: text/plain; charset=UTF-8
99cbc7
Content-Transfer-Encoding: 8bit
99cbc7
99cbc7
https://bugzilla.redhat.com/show_bug.cgi?id=1470007
99cbc7
99cbc7
Rather than rejecting the user provided path and alias for the
99cbc7
managed PR reservation we will ignore the provided path. The
99cbc7
reason is that migration XML does contain path even for managed
99cbc7
reservations.
99cbc7
99cbc7
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
99cbc7
(cherry picked from commit 900403a3b2fe76ec3e03086c24a2d5480a7a6b06)
99cbc7
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
99cbc7
Reviewed-by: Ján Tomko <jtomko@redhat.com>
99cbc7
---
99cbc7
 src/qemu/qemu_domain.c | 19 ++++++-------------
99cbc7
 1 file changed, 6 insertions(+), 13 deletions(-)
99cbc7
99cbc7
diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
99cbc7
index f9bcf76f44..cfecbaca74 100644
99cbc7
--- a/src/qemu/qemu_domain.c
99cbc7
+++ b/src/qemu/qemu_domain.c
99cbc7
@@ -4615,19 +4615,11 @@ qemuDomainValidateStorageSource(virStorageSourcePtr src,
99cbc7
         }
99cbc7
     }
99cbc7
 
99cbc7
-    if (src->pr) {
99cbc7
-        if (!virQEMUCapsGet(qemuCaps, QEMU_CAPS_PR_MANAGER_HELPER)) {
99cbc7
-            virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
99cbc7
-                           _("reservations not supported with this QEMU binary"));
99cbc7
-            return -1;
99cbc7
-        }
99cbc7
-
99cbc7
-        if (virStoragePRDefIsManaged(src->pr) && src->pr->path) {
99cbc7
-            virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
99cbc7
-                           _("'path' attribute should not be provided for "
99cbc7
-                             "managed reservations"));
99cbc7
-            return -1;
99cbc7
-        }
99cbc7
+    if (src->pr &&
99cbc7
+        !virQEMUCapsGet(qemuCaps, QEMU_CAPS_PR_MANAGER_HELPER)) {
99cbc7
+        virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
99cbc7
+                       _("reservations not supported with this QEMU binary"));
99cbc7
+        return -1;
99cbc7
     }
99cbc7
 
99cbc7
     return 0;
99cbc7
@@ -12831,6 +12823,7 @@ qemuDomainPrepareStorageSourcePR(virStorageSourcePtr src,
99cbc7
         return 0;
99cbc7
 
99cbc7
     if (virStoragePRDefIsManaged(src->pr)) {
99cbc7
+        VIR_FREE(src->pr->path);
99cbc7
         if (!(src->pr->path = qemuDomainGetManagedPRSocketPath(priv)))
99cbc7
             return -1;
99cbc7
         if (VIR_STRDUP(src->pr->mgralias, qemuDomainGetManagedPRAlias()) < 0)
99cbc7
-- 
99cbc7
2.18.0
99cbc7