Re: [libvirt] [PATCH] qemu: hotplug: don't overwrite error message in qemuDomainAttachNetDevice

2018-07-17 Thread Ján Tomko

On Fri, Jul 13, 2018 at 05:31:48PM +0200, Katerina Koukiou wrote:

Since commit f14c37, virDomainConfVMNWFilterTeardown is reporting errors
thus any previously reported error gets overwritten.
We need to save the errors in qemuDomainAttachNetDevice before calling
this function when we are in cleanup code.

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

Signed-off-by: Katerina Koukiou 
---
src/qemu/qemu_hotplug.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index 3dfa51b0a0..2e13cab233 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -793,6 +793,7 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
bool charDevPlugged = false;
bool netdevPlugged = false;
char *netdev_name;
+virErrorPtr save_error = NULL;


You can reuse the originalError variable that is used in the try_remove
section.

Jano



/* preallocate new slot for device */
if (VIR_REALLOC_N(vm->def->nets, vm->def->nnets + 1) < 0)
@@ -1074,7 +1075,9 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
qemuDomainReleaseDeviceAddress(vm, &net->info, NULL);

if (iface_connected) {
+virErrorPreserveLast(&save_error);
virDomainConfNWFilterTeardown(net);
+virErrorRestore(&save_error);

if (virDomainNetGetActualType(net) == VIR_DOMAIN_NET_TYPE_DIRECT) {
ignore_value(virNetDevMacVLanDeleteWithVPortProfile(
--
2.15.0

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


signature.asc
Description: Digital signature
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Re: [libvirt] [PATCH] qemu: hotplug: don't overwrite error message in qemuDomainAttachNetDevice

2018-07-13 Thread Michal Prívozník
On 07/13/2018 05:31 PM, Katerina Koukiou wrote:
> Since commit f14c37, virDomainConfVMNWFilterTeardown is reporting errors
> thus any previously reported error gets overwritten.
> We need to save the errors in qemuDomainAttachNetDevice before calling
> this function when we are in cleanup code.
> 
> https://bugzilla.redhat.com/show_bug.cgi?id=1598311
> 
> Signed-off-by: Katerina Koukiou 
> ---
>  src/qemu/qemu_hotplug.c | 3 +++
>  1 file changed, 3 insertions(+)

ACK

Michal

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


[libvirt] [PATCH] qemu: hotplug: don't overwrite error message in qemuDomainAttachNetDevice

2018-07-13 Thread Katerina Koukiou
Since commit f14c37, virDomainConfVMNWFilterTeardown is reporting errors
thus any previously reported error gets overwritten.
We need to save the errors in qemuDomainAttachNetDevice before calling
this function when we are in cleanup code.

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

Signed-off-by: Katerina Koukiou 
---
 src/qemu/qemu_hotplug.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index 3dfa51b0a0..2e13cab233 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -793,6 +793,7 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
 bool charDevPlugged = false;
 bool netdevPlugged = false;
 char *netdev_name;
+virErrorPtr save_error = NULL;
 
 /* preallocate new slot for device */
 if (VIR_REALLOC_N(vm->def->nets, vm->def->nnets + 1) < 0)
@@ -1074,7 +1075,9 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
 qemuDomainReleaseDeviceAddress(vm, &net->info, NULL);
 
 if (iface_connected) {
+virErrorPreserveLast(&save_error);
 virDomainConfNWFilterTeardown(net);
+virErrorRestore(&save_error);
 
 if (virDomainNetGetActualType(net) == VIR_DOMAIN_NET_TYPE_DIRECT) {
 ignore_value(virNetDevMacVLanDeleteWithVPortProfile(
-- 
2.15.0

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list