|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH 2/5] libxl: Add utility function to check guest status
This is used to check that a guest has not been destroyed and to obtain
information about it. It will be used in subsequent patches.
Signed-off-by: Demi Marie Obenour <demi@xxxxxxxxxxxxxxxxxxxxxx>
---
tools/libs/light/libxl_dom_suspend.c | 29 +++++++++++++++++++----------
1 file changed, 19 insertions(+), 10 deletions(-)
diff --git a/tools/libs/light/libxl_dom_suspend.c
b/tools/libs/light/libxl_dom_suspend.c
index
fa50e8801f35d173a99ae5dd19eb941649e14019..d2a88ea34efb115a8f2b861daf5884d95f39e81d
100644
--- a/tools/libs/light/libxl_dom_suspend.c
+++ b/tools/libs/light/libxl_dom_suspend.c
@@ -321,27 +321,36 @@ static void suspend_common_wait_guest_watch(libxl__egc
*egc,
suspend_common_wait_guest_check(egc, dsps);
}
+static int check_guest_status(libxl__gc *gc, const uint32_t domid,
+ xc_domaininfo_t *info, const char *what)
+{
+ int ret = xc_domain_getinfolist(CTX->xch, domid, 1, info);
+
+ if (ret < 0) {
+ LOGED(ERROR, domid, "unable to check for status of guest");
+ return ERROR_FAIL;
+ }
+
+ if (!(ret == 1 && info->domain == domid)) {
+ LOGED(ERROR, domid, "guest we were %s has been destroyed", what);
+ return ERROR_FAIL;
+ }
+
+ return 0;
+}
+
static void suspend_common_wait_guest_check(libxl__egc *egc,
libxl__domain_suspend_state *dsps)
{
STATE_AO_GC(dsps->ao);
xc_domaininfo_t info;
- int ret;
int shutdown_reason;
/* Convenience aliases */
const uint32_t domid = dsps->domid;
- ret = xc_domain_getinfolist(CTX->xch, domid, 1, &info);
- if (ret < 0) {
- LOGED(ERROR, domid, "unable to check for status of guest");
+ if (check_guest_status(gc, domid, &info, "suspending"))
goto err;
- }
-
- if (!(ret == 1 && info.domain == domid)) {
- LOGED(ERROR, domid, "guest we were suspending has been destroyed");
- goto err;
- }
if (!(info.flags & XEN_DOMINF_shutdown))
/* keep waiting */
--
Sincerely,
Demi Marie Obenour (she/her/hers)
Invisible Things Lab
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |