char *uuid;
const char *vm_name_path;
+ libxl_dominfo_init(&info);
+
dom_path = libxl__xs_get_dompath(gc, domid);
if (!dom_path) goto x_nomem;
rc = 0;
x_rc:
if (our_trans) xs_transaction_end(ctx->xsh, our_trans, 1);
+ libxl_dominfo_dispose(&info);
return rc;
x_fail: rc = ERROR_FAIL; goto x_rc;
libxl_ctx *ctx = libxl__gc_owner(gc);
uint32_t free_mem_slack_kb = 0;
+ libxl_dominfo_init(&info);
+
retry_transaction:
t = xs_transaction_start(ctx->xsh);
}
}
+ libxl_dominfo_dispose(&info);
+ libxl_dominfo_init(&info);
rc = libxl_domain_info(ctx, &info, 0);
if (rc < 0)
goto out;
rc = ERROR_FAIL;
}
-
+ libxl_dominfo_dispose(&info);
return rc;
}
uint32_t target_memkb = 0;
libxl_dominfo info;
+ libxl_dominfo_init(&info);
+
do {
wait_secs--;
sleep(1);
if (rc < 0)
goto out;
+ libxl_dominfo_dispose(&info);
+ libxl_dominfo_init(&info);
rc = libxl_domain_info(ctx, &info, domid);
if (rc < 0)
- return rc;
+ goto out;
} while (wait_secs > 0 && (info.current_memkb + info.outstanding_memkb) > target_memkb);
if ((info.current_memkb + info.outstanding_memkb) <= target_memkb)
rc = ERROR_FAIL;
out:
+ libxl_dominfo_dispose(&info);
return rc;
}
xs_transaction_t t;
int i, rc = ERROR_FAIL;
+ libxl_dominfo_init(&info);
+
if (libxl_domain_info(CTX, &info, domid) < 0) {
LOGE(ERROR, "getting domain info list");
goto out;
} else
rc = 0;
out:
+ libxl_dominfo_dispose(&info);
return rc;
}
libxl_dominfo info;
int i;
+ libxl_dominfo_init(&info);
+
if (libxl_domain_info(CTX, &info, domid) < 0) {
LOGE(ERROR, "getting domain info list");
+ libxl_dominfo_dispose(&info);
return ERROR_FAIL;
}
for (i = 0; i <= info.vcpu_max_id; i++) {
libxl__qmp_cpu_add(gc, domid, i);
}
}
+ libxl_dominfo_dispose(&info);
return 0;
}
/* Domain UUID */
{
libxl_dominfo info;
+ libxl_dominfo_init(&info);
rc = libxl_domain_info(ctx, &info, domid);
if (rc) {
LOG(ERROR, "fail to get domain info for domain %d", domid);
+ libxl_dominfo_dispose(&info);
goto out;
}
libxl_uuid_copy(ctx, &d_config->c_info.uuid, &info.uuid);
+ libxl_dominfo_dispose(&info);
}
/* Memory limits:
const char *wh)
{
libxl_ctx *ctx = libxl__gc_owner(gc);
- char *uuid_string;
+ char *uuid_string, *path;
libxl_dominfo info;
int rc;
+ libxl_dominfo_init(&info);
+
rc = libxl_domain_info(ctx, &info, domid);
if (rc) {
LOGE(ERROR, "unable to find domain info for domain %"PRIu32, domid);
- return NULL;
+ path = NULL;
+ goto out;
}
uuid_string = GCSPRINTF(LIBXL_UUID_FMT, LIBXL_UUID_BYTES(info.uuid));
-
- return GCSPRINTF("/var/lib/xen/userdata-%s.%u.%s.%s",
+ path = GCSPRINTF("/var/lib/xen/userdata-%s.%u.%s.%s",
wh, domid, uuid_string, userdata_userid);
+
+ out:
+ libxl_dominfo_dispose(&info);
+ return path;
}
static int userdata_delete(libxl__gc *gc, const char *path)