[PATCH v2] qemu: Move last error save/restore to qemuBuildNetCommandLine

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Commit 'ef2ab8fd' moved just the virDomainConfNWFilterTeardown and left
the logic to save/restore the current error essentially doing nothing
in the error path for qemuBuildCommandLine.  So move it to where it
was meant to be.

Although the original code would reset the filter on command creation
errors after building the network command portion and commit 'ef2ab8fd'
altered that logic, the teardown is called during qemuProcessStop from
virDomainConfVMNWFilterTeardown and that code has the save/restore
last error logic, so just allow that code to handle the teardown rather
than running it twice. The qemuProcessStop would be called in the failure
path of qemuBuildCommandLine.

Signed-off-by: John Ferlan <jferlan@xxxxxxxxxx>
---
v1:
http://www.redhat.com/archives/libvir-list/2016-March/msg00566.html

Changes - just move the save/restore error logic from mainline to the
BuildNetCommandLine function where it's used.

 src/qemu/qemu_command.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index b18e425..954f802 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -8077,8 +8077,13 @@ qemuBuildNetCommandLine(virCommandPtr cmd,
     return 0;
 
  error:
+    /* free up any resources in the network driver
+     * but don't overwrite the original error */
+    originalError = virSaveLastError();
     for (i = 0; last_good_net != -1 && i <= last_good_net; i++)
         virDomainConfNWFilterTeardown(def->nets[i]);
+    virSetError(originalError);
+    virFreeError(originalError);
     return -1;
 }
 
@@ -9407,11 +9412,6 @@ qemuBuildCommandLine(virConnectPtr conn,
 
  error:
     virObjectUnref(cfg);
-    /* free up any resources in the network driver
-     * but don't overwrite the original error */
-    originalError = virSaveLastError();
-    virSetError(originalError);
-    virFreeError(originalError);
     virCommandFree(cmd);
     return NULL;
 }
-- 
2.5.0

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



[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]