Add last meaningful error preservation to virCHProcessStop.
Signed-off-by: Kirill Shchetiniuk <kshcheti@redhat.com>
---
src/ch/ch_process.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/ch/ch_process.c b/src/ch/ch_process.c
index 9a85f7869e..38d466eaeb 100644
--- a/src/ch/ch_process.c
+++ b/src/ch/ch_process.c
@@ -995,11 +995,15 @@ virCHProcessStop(virCHDriver *driver,
virCHDomainObjPrivate *priv = vm->privateData;
virCHDriverConfig *cfg = virCHDriverGetConfig(driver);
virDomainDef *def = vm->def;
+ virErrorPtr orig_err = NULL;
size_t i;
VIR_DEBUG("Stopping VM name=%s pid=%d reason=%d",
vm->def->name, (int)vm->pid, (int)reason);
+ /* Preserve origin error */
+ virErrorPreserveLast(&orig_err);
+
if (priv->monitor) {
g_clear_pointer(&priv->monitor, virCHMonitorClose);
}
@@ -1032,6 +1036,8 @@ virCHProcessStop(virCHDriver *driver,
virHostdevReAttachDomainDevices(driver->hostdevMgr, CH_DRIVER_NAME, def,
hostdev_flags);
+
+ virErrorRestore(&orig_err);
return 0;
}
--
2.48.1
On Thu, Mar 06, 2025 at 11:27:08 +0100, Kirill Shchetiniuk wrote: > Add last meaningful error preservation to virCHProcessStop. > > Signed-off-by: Kirill Shchetiniuk <kshcheti@redhat.com> > --- > src/ch/ch_process.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/src/ch/ch_process.c b/src/ch/ch_process.c > index 9a85f7869e..38d466eaeb 100644 > --- a/src/ch/ch_process.c > +++ b/src/ch/ch_process.c > @@ -995,11 +995,15 @@ virCHProcessStop(virCHDriver *driver, > virCHDomainObjPrivate *priv = vm->privateData; > virCHDriverConfig *cfg = virCHDriverGetConfig(driver); > virDomainDef *def = vm->def; > + virErrorPtr orig_err = NULL; > size_t i; > > VIR_DEBUG("Stopping VM name=%s pid=%d reason=%d", > vm->def->name, (int)vm->pid, (int)reason); > > + /* Preserve origin error */ It's quite self-evident from the function called ;) > + virErrorPreserveLast(&orig_err); > + > if (priv->monitor) { > g_clear_pointer(&priv->monitor, virCHMonitorClose); > } > @@ -1032,6 +1036,8 @@ virCHProcessStop(virCHDriver *driver, > > virHostdevReAttachDomainDevices(driver->hostdevMgr, CH_DRIVER_NAME, def, > hostdev_flags); > + > + virErrorRestore(&orig_err); > return 0; > } Reviewed-by: Peter Krempa <pkrempa@redhat.com>
© 2016 - 2025 Red Hat, Inc.