mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-20 07:59:00 +00:00
virDomainDefCompatibleDevice: Relax alias change check
https://bugzilla.redhat.com/show_bug.cgi?id=1621910 When introducing this check back in 4ad54a417a1 my mindset was that if an element is missing in update XML then user is requesting for removal of the corresponding setting. For instance, if <bandwidth/> is not present in update XML any QoS previously set on <interface/> is cleared out. Well this assumption is correct but only to some extent. Turns out, we have some users who when updating path to ISO image construct very minimalistic disk XML and pass it to device update API. Such XML is lacking a lot of information, and alias is one of them. This triggers error in virDomainDefCompatibleDevice() because we think that user is requesting to remove the alias. Well, they are not. Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: John Ferlan <jferlan@redhat.com>
This commit is contained in:
parent
2f6ff0da5b
commit
b48d9e939b
@ -28785,9 +28785,9 @@ virDomainDefCompatibleDevice(virDomainDefPtr def,
|
||||
|
||||
if (action == VIR_DOMAIN_DEVICE_ACTION_UPDATE &&
|
||||
live &&
|
||||
((!!data.newInfo != !!data.oldInfo) ||
|
||||
(data.newInfo && data.oldInfo &&
|
||||
STRNEQ_NULLABLE(data.newInfo->alias, data.oldInfo->alias)))) {
|
||||
(data.newInfo && data.oldInfo &&
|
||||
data.newInfo->alias && data.oldInfo->alias &&
|
||||
STRNEQ(data.newInfo->alias, data.oldInfo->alias))) {
|
||||
virReportError(VIR_ERR_OPERATION_DENIED, "%s",
|
||||
_("changing device alias is not allowed"));
|
||||
return -1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user