]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: introduce CHECK_STREQ_NULLABLE in qemuDomainDiskChangeSupported
authorJán Tomko <jtomko@redhat.com>
Thu, 28 Mar 2019 13:46:58 +0000 (14:46 +0100)
committerJán Tomko <jtomko@redhat.com>
Fri, 29 Mar 2019 11:54:41 +0000 (12:54 +0100)
A macro for comparing string fields of the disk.

https://bugzilla.redhat.com/show_bug.cgi?id=1601677

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Laine Stump <laine@laine.org>
src/qemu/qemu_domain.c

index 7e0938e9892b8a8bc514a259362978b3c26680af..f856a5b081c16a5d70ef05b940f556e9a2d6819a 100644 (file)
@@ -9321,6 +9321,18 @@ qemuDomainDiskChangeSupported(virDomainDiskDefPtr disk,
         } \
     } while (0)
 
+#define CHECK_STREQ_NULLABLE(field, field_name) \
+    do { \
+        if (!disk->field) \
+            break; \
+        if (STRNEQ_NULLABLE(disk->field, orig_disk->field)) { \
+            virReportError(VIR_ERR_OPERATION_UNSUPPORTED, \
+                           _("cannot modify field '%s' of the disk"), \
+                           field_name); \
+            return false; \
+        } \
+    } while (0)
+
     CHECK_EQ(device, "device", false);
     CHECK_EQ(bus, "bus", false);
     if (STRNEQ(disk->dst, orig_disk->dst)) {
@@ -9468,6 +9480,7 @@ qemuDomainDiskChangeSupported(virDomainDiskDefPtr disk,
     }
 
 #undef CHECK_EQ
+#undef CHECK_STREQ_NULLABLE
 
     return true;
 }