@@ -1532,7 +1532,6 @@ void libxl__destroy_domid(libxl__egc *egc, libxl__destroy_domid_state *dis)
libxl_ctx *ctx = CTX;
uint32_t domid = dis->domid;
char *dom_path;
- char *pid;
int rc, dm_present;
libxl__ev_child_init(&dis->destroyer);
@@ -1555,8 +1554,7 @@ void libxl__destroy_domid(libxl__egc *egc, libxl__destroy_domid_state *dis)
}
/* fall through */
case LIBXL_DOMAIN_TYPE_PV:
- pid = libxl__xs_read(gc, XBT_NULL, GCSPRINTF("/local/domain/%d/image/device-model-pid", domid));
- dm_present = (pid != NULL);
+ dm_present = libxl__dm_active(gc, domid);
break;
case LIBXL_DOMAIN_TYPE_INVALID:
rc = ERROR_FAIL;
@@ -2159,6 +2159,16 @@ out:
return ret;
}
+int libxl__dm_active(libxl__gc *gc, uint32_t domid)
+{
+ char *pid, *path;
+
+ path = GCSPRINTF("/local/domain/%d/image/device-model-pid", domid);
+ pid = libxl__xs_read(gc, XBT_NULL, path);
+
+ return pid != NULL;
+}
+
/*
* Local variables:
* mode: C