]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virDomainDiskDefValidateStartupPolicy: Validate disk type better
authorPeter Krempa <pkrempa@redhat.com>
Tue, 14 Jun 2022 12:07:47 +0000 (14:07 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Tue, 14 Jun 2022 14:38:11 +0000 (16:38 +0200)
Our startup policy checkers work only for local paths, so disk sources
such as NVMe, or vhost-user can't be used with startup policy.

Unfortunately the validation did not catch these cases. Fix it.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/conf/domain_validate.c

index 70e9167eac67b0001e7e87d5e751387206f62978..9c55d05cacc054f8be7af0089bb0d3abbedfb392 100644 (file)
@@ -638,7 +638,10 @@ virDomainDiskDefValidateStartupPolicy(const virDomainDiskDef *disk)
     if (disk->startupPolicy == VIR_DOMAIN_STARTUP_POLICY_DEFAULT)
         return 0;
 
-    if (disk->src->type == VIR_STORAGE_TYPE_NETWORK) {
+    /* We want to allow any startup policy for un-translated _TYPE_VOLUME disks.
+     * virStorageSourceGetActualType returns _TYPE_VOLUME in such case */
+    if (virStorageSourceGetActualType(disk->src) != VIR_STORAGE_TYPE_VOLUME &&
+        !virStorageSourceIsLocalStorage(disk->src)) {
         virReportError(VIR_ERR_XML_ERROR,
                        _("disk startupPolicy '%s' is not allowed for disk of '%s' type"),
                        virDomainStartupPolicyTypeToString(disk->startupPolicy),