Several paths repeat the same guest-agent teardown sequence; extract it
into one helper so it stays in sync.

Signed-off-by: Polina Vishneva <[email protected]>
---
 src/qemu/qemu_driver.c  |  5 +----
 src/qemu/qemu_process.c | 15 +++++++++++----
 src/qemu/qemu_process.h |  2 ++
 3 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 8ec9e1f9c4..0edc568bd7 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -3929,10 +3929,7 @@ processSerialChangedEvent(virQEMUDriver *driver,
             if (qemuConnectAgent(driver, vm) < 0)
                 goto endjob;
         } else {
-            if (priv->agent) {
-                g_clear_pointer(&priv->agent, qemuAgentClose);
-            }
-            priv->agentError = false;
+            qemuProcessResetAgent(vm);
         }
 
         agentEvent = virDomainEventAgentLifecycleNewFromObj(vm, newstate,
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 4c94ff3c91..77d9880d14 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -140,6 +140,16 @@ qemuProcessRemoveDomainStatus(virQEMUDriver *driver,
 }
 
 
+void
+qemuProcessResetAgent(virDomainObj *vm)
+{
+    qemuDomainObjPrivate *priv = vm->privateData;
+
+    g_clear_pointer(&priv->agent, qemuAgentClose);
+    priv->agentError = false;
+}
+
+
 /*
  * This is a callback registered with a qemuAgent *instance,
  * and to be invoked when the agent console hits an end of file
@@ -9401,10 +9411,7 @@ qemuProcessStop(virDomainObj *vm,
         virObjectLock(vm);
     }
 
-    if (priv->agent) {
-        g_clear_pointer(&priv->agent, qemuAgentClose);
-    }
-    priv->agentError = false;
+    qemuProcessResetAgent(vm);
 
     if (priv->mon) {
         g_clear_pointer(&priv->mon, qemuMonitorClose);
diff --git a/src/qemu/qemu_process.h b/src/qemu/qemu_process.h
index 5874214596..3fc9f844d3 100644
--- a/src/qemu/qemu_process.h
+++ b/src/qemu/qemu_process.h
@@ -210,6 +210,8 @@ virDomainDiskDef 
*qemuProcessFindDomainDiskByAliasOrQOM(virDomainObj *vm,
 
 int qemuConnectAgent(virQEMUDriver *driver, virDomainObj *vm);
 
+void qemuProcessResetAgent(virDomainObj *vm);
+
 
 int qemuProcessSetupVcpu(virDomainObj *vm,
                          unsigned int vcpuid,
-- 
2.54.0

Reply via email to