|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 09/28] libxl: Move some error handling and cleanup into libxl__destroy_device_model
Move
- the error log message
- the call to libxl__qmp_cleanup
into libxl__destroy_device_model from the one call site in
libxl__destroy_domid.
We are going to want to call libxl__destroy_device_model more than
once, and this code would otherwise need to be repeated for the other
call site(s).
The call site now completely ignores the error, sadly. But I am not
intending in this series to try to undertake destruction
error-handling cleanup as well.
No functional change other than slight change to the error message.
Signed-off-by: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
---
v6: New patch.
---
tools/libxl/libxl.c | 4 +---
tools/libxl/libxl_dm.c | 10 +++++++++-
2 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
index 1ac5d81..5414649 100644
--- a/tools/libxl/libxl.c
+++ b/tools/libxl/libxl.c
@@ -1653,10 +1653,8 @@ void libxl__destroy_domid(libxl__egc *egc,
libxl__destroy_domid_state *dis)
}
if (dm_present) {
- if (libxl__destroy_device_model(gc, domid) < 0)
- LOG(ERROR, "libxl__destroy_device_model failed for %d", domid);
+ libxl__destroy_device_model(gc, domid);
- libxl__qmp_cleanup(gc, domid);
}
dis->drs.ao = ao;
dis->drs.domid = domid;
diff --git a/tools/libxl/libxl_dm.c b/tools/libxl/libxl_dm.c
index ea82e11..b85b377 100644
--- a/tools/libxl/libxl_dm.c
+++ b/tools/libxl/libxl_dm.c
@@ -2099,13 +2099,21 @@ out:
int libxl__destroy_device_model(libxl__gc *gc, uint32_t domid)
{
+ int rc;
+
char *path = libxl__device_model_xs_path(gc, LIBXL_TOOLSTACK_DOMID,
domid, EMUID_DM, "");
if (!xs_rm(CTX->xsh, XBT_NULL, path))
LOG(ERROR, "xs_rm failed for %s", path);
/* We should try to destroy the device model anyway. */
- return kill_device_model(gc,
+ rc = kill_device_model(gc,
GCSPRINTF("/local/domain/%d/image/device-model-pid", domid));
+ if (rc)
+ LOG(ERROR, "libxl__destroy_device_model failed for %d",
+ domid);
+
+ libxl__qmp_cleanup(gc, domid);
+ return rc;
}
int libxl__need_xenpv_qemu(libxl__gc *gc,
--
1.7.10.4
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |