]> xenbits.xensource.com Git - libvirt.git/commitdiff
conf: add virDomainDiskBlockIoCheckABIStability()
authorKristina Hanicova <khanicov@redhat.com>
Thu, 24 Aug 2023 10:57:00 +0000 (12:57 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Thu, 24 Aug 2023 11:48:46 +0000 (13:48 +0200)
Add missing ABI stability check for blockio properties for disk
devices.

Signed-off-by: Kristina Hanicova <khanicov@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
src/conf/domain_conf.c

index aab660bdea10b66e24d694917196250262cae049..69934026efec746796f57e63a9ffb9c535ed6bf2 100644 (file)
@@ -19819,6 +19819,28 @@ virDomainVirtioOptionsCheckABIStability(virDomainVirtioOptions *src,
 }
 
 
+static bool
+virDomainDiskBlockIoCheckABIStability(virDomainDiskDef *src,
+                                      virDomainDiskDef *dst)
+{
+    if (src->blockio.logical_block_size != dst->blockio.logical_block_size) {
+        virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+                       _("Target disk logical_block_size %1$u does not match source %2$u"),
+                       dst->blockio.logical_block_size, src->blockio.logical_block_size);
+        return false;
+    }
+
+    if (src->blockio.physical_block_size != dst->blockio.physical_block_size) {
+        virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+                       _("Target disk physical_block_size %1$u does not match source %2$u"),
+                       dst->blockio.physical_block_size, src->blockio.physical_block_size);
+        return false;
+    }
+    return true;
+}
+
+
+
 static bool
 virDomainDiskDefCheckABIStability(virDomainDiskDef *src,
                                   virDomainDiskDef *dst)
@@ -19902,6 +19924,9 @@ virDomainDiskDefCheckABIStability(virDomainDiskDef *src,
     if (!virDomainDeviceInfoCheckABIStability(&src->info, &dst->info))
         return false;
 
+    if (!virDomainDiskBlockIoCheckABIStability(src, dst))
+        return false;
+
     return true;
 }