]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
conf: device: compare drive address fields separately
authorJán Tomko <jtomko@redhat.com>
Tue, 16 Nov 2021 13:46:39 +0000 (14:46 +0100)
committerJán Tomko <jtomko@redhat.com>
Tue, 16 Nov 2021 15:40:33 +0000 (16:40 +0100)
Commit 3210c8b04 introduced a separate field 'diskbus' for
internal use by the commandline formatter.

Adjust the check for address equality to compare the relevant
fields separately instead of the whole struct.

This means that the changes of the 'diskbus' field added
in commit 03ed14d2d4 no longer affect the outcome of the address
equality check.

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

Fixes: 3210c8b047534f7e1d3ccde7ea3bcf11e7c92ad9
Fixes: 03ed14d2d4a4e51568b1ee5a6e6c9c3371bb4d34
Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
src/conf/device_conf.c

index e587d90c59dd330da4f59da7a4a6f070d073f7f7..cb523d3a0d7e361eeb646bd884ea95a08de4335f 100644 (file)
@@ -119,7 +119,10 @@ virDomainDeviceInfoAddressIsEqual(const virDomainDeviceInfo *a,
         break;
 
     case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE:
-        if (memcmp(&a->addr.drive, &b->addr.drive, sizeof(a->addr.drive)))
+        if (a->addr.drive.controller != b->addr.drive.controller ||
+            a->addr.drive.unit != b->addr.drive.unit ||
+            a->addr.drive.bus != b->addr.drive.bus ||
+            a->addr.drive.target != b->addr.drive.target)
             return false;
         break;