Disk source definition should be validated in
qemuDomainValidateStorageSource rather than in individual generators of
command line arguments.

Change to the XML2XML test is required since now the definition is
actually validated at define time.

Signed-off-by: Peter Krempa <pkre...@redhat.com>
---
 src/qemu/qemu_command.c | 7 -------
 src/qemu/qemu_domain.c  | 7 +++++++
 tests/qemuxml2xmltest.c | 2 +-
 3 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index d84cf6dffc..29ca2005a0 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -9683,7 +9683,6 @@ qemuBuildPRManagerInfoProps(virDomainObjPtr vm,
                             virJSONValuePtr *propsret,
                             char **aliasret)
 {
-    qemuDomainObjPrivatePtr priv = vm->privateData;
     char *socketPath = NULL;
     char *alias = NULL;
     int ret = -1;
@@ -9694,12 +9693,6 @@ qemuBuildPRManagerInfoProps(virDomainObjPtr vm,
     if (!virStoragePRDefIsEnabled(disk->src->pr))
         return 0;

-    if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_PR_MANAGER_HELPER)) {
-        virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
-                       _("reservations not supported with this QEMU binary"));
-        return ret;
-    }
-
     if (!(socketPath = qemuDomainGetPRSocketPath(vm, disk->src->pr)))
         return ret;

diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index 233327b906..611a96d6be 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -4204,6 +4204,13 @@ qemuDomainValidateStorageSource(virStorageSourcePtr src,
         }
     }

+    if (virStoragePRDefIsEnabled(src->pr) &&
+        !virQEMUCapsGet(qemuCaps, QEMU_CAPS_PR_MANAGER_HELPER)) {
+        virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+                       _("reservations not supported with this QEMU binary"));
+        return -1;
+    }
+
     return 0;
 }

diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c
index 762e0e2d25..44cba97d4a 100644
--- a/tests/qemuxml2xmltest.c
+++ b/tests/qemuxml2xmltest.c
@@ -388,7 +388,7 @@ mymain(void)
     DO_TEST("disk-virtio-scsi-num_queues",
             QEMU_CAPS_VIRTIO_SCSI);
     DO_TEST("disk-virtio-scsi-reservations",
-            QEMU_CAPS_VIRTIO_SCSI);
+            QEMU_CAPS_VIRTIO_SCSI, QEMU_CAPS_PR_MANAGER_HELPER);
     DO_TEST("disk-virtio-scsi-cmd_per_lun",
             QEMU_CAPS_VIRTIO_SCSI);
     DO_TEST("disk-virtio-scsi-max_sectors",
-- 
2.16.2

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to