Blame SOURCES/libvirt-virDomainDiskDefValidateStartupPolicy-Validate-disk-type-better.patch

11fcb6
From a5cdca9995a05ac45e882ad3e1ca1e4ab53a2c34 Mon Sep 17 00:00:00 2001
11fcb6
Message-Id: <a5cdca9995a05ac45e882ad3e1ca1e4ab53a2c34@dist-git>
11fcb6
From: Peter Krempa <pkrempa@redhat.com>
11fcb6
Date: Tue, 14 Jun 2022 14:07:47 +0200
11fcb6
Subject: [PATCH] virDomainDiskDefValidateStartupPolicy: Validate disk type
11fcb6
 better
11fcb6
MIME-Version: 1.0
11fcb6
Content-Type: text/plain; charset=UTF-8
11fcb6
Content-Transfer-Encoding: 8bit
11fcb6
11fcb6
Our startup policy checkers work only for local paths, so disk sources
11fcb6
such as NVMe, or vhost-user can't be used with startup policy.
11fcb6
11fcb6
Unfortunately the validation did not catch these cases. Fix it.
11fcb6
11fcb6
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
11fcb6
Reviewed-by: Ján Tomko <jtomko@redhat.com>
11fcb6
(cherry picked from commit b90d0f0a1e4ee52c828fb683c14c14e241e6fcbb)
11fcb6
https://bugzilla.redhat.com/show_bug.cgi?id=2095758
11fcb6
https://bugzilla.redhat.com/show_bug.cgi?id=2109571
11fcb6
---
11fcb6
 src/conf/domain_validate.c | 5 ++++-
11fcb6
 1 file changed, 4 insertions(+), 1 deletion(-)
11fcb6
11fcb6
diff --git a/src/conf/domain_validate.c b/src/conf/domain_validate.c
11fcb6
index bfff7339ef..55759af9f8 100644
11fcb6
--- a/src/conf/domain_validate.c
11fcb6
+++ b/src/conf/domain_validate.c
11fcb6
@@ -604,7 +604,10 @@ virDomainDiskDefValidateStartupPolicy(const virDomainDiskDef *disk)
11fcb6
     if (disk->startupPolicy == VIR_DOMAIN_STARTUP_POLICY_DEFAULT)
11fcb6
         return 0;
11fcb6
 
11fcb6
-    if (disk->src->type == VIR_STORAGE_TYPE_NETWORK) {
11fcb6
+    /* We want to allow any startup policy for un-translated _TYPE_VOLUME disks.
11fcb6
+     * virStorageSourceGetActualType returns _TYPE_VOLUME in such case */
11fcb6
+    if (virStorageSourceGetActualType(disk->src) != VIR_STORAGE_TYPE_VOLUME &&
11fcb6
+        !virStorageSourceIsLocalStorage(disk->src)) {
11fcb6
         virReportError(VIR_ERR_XML_ERROR,
11fcb6
                        _("disk startupPolicy '%s' is not allowed for disk of '%s' type"),
11fcb6
                        virDomainStartupPolicyTypeToString(disk->startupPolicy),
11fcb6
-- 
11fcb6
2.35.1
11fcb6