提交 2745177b 编写于 作者: P Peter Krempa

qemu: Refactor managed save functions to use domain lookup helpers

上级 7fc06b04
...@@ -3238,8 +3238,8 @@ qemuDomainManagedSavePath(virQEMUDriverPtr driver, virDomainObjPtr vm) { ...@@ -3238,8 +3238,8 @@ qemuDomainManagedSavePath(virQEMUDriverPtr driver, virDomainObjPtr vm) {
static int static int
qemuDomainManagedSave(virDomainPtr dom, unsigned int flags) qemuDomainManagedSave(virDomainPtr dom, unsigned int flags)
{ {
virQEMUDriverPtr driver = dom->conn->privateData; virQEMUDriverPtr driver;
virDomainObjPtr vm = NULL; virDomainObjPtr vm;
char *name = NULL; char *name = NULL;
int ret = -1; int ret = -1;
int compressed; int compressed;
...@@ -3248,15 +3248,8 @@ qemuDomainManagedSave(virDomainPtr dom, unsigned int flags) ...@@ -3248,15 +3248,8 @@ qemuDomainManagedSave(virDomainPtr dom, unsigned int flags)
VIR_DOMAIN_SAVE_RUNNING | VIR_DOMAIN_SAVE_RUNNING |
VIR_DOMAIN_SAVE_PAUSED, -1); VIR_DOMAIN_SAVE_PAUSED, -1);
qemuDriverLock(driver); if (!(vm = qemuDomObjFromDomainDriver(dom, &driver)))
vm = virDomainFindByUUID(&driver->domains, dom->uuid); return -1;
if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN];
virUUIDFormat(dom->uuid, uuidstr);
virReportError(VIR_ERR_NO_DOMAIN,
_("no domain with matching uuid '%s'"), uuidstr);
goto cleanup;
}
if (!virDomainObjIsActive(vm)) { if (!virDomainObjIsActive(vm)) {
virReportError(VIR_ERR_OPERATION_INVALID, virReportError(VIR_ERR_OPERATION_INVALID,
...@@ -3315,50 +3308,31 @@ cleanup: ...@@ -3315,50 +3308,31 @@ cleanup:
static int static int
qemuDomainHasManagedSaveImage(virDomainPtr dom, unsigned int flags) qemuDomainHasManagedSaveImage(virDomainPtr dom, unsigned int flags)
{ {
virQEMUDriverPtr driver = dom->conn->privateData;
virDomainObjPtr vm = NULL; virDomainObjPtr vm = NULL;
int ret = -1; int ret;
virCheckFlags(0, -1); virCheckFlags(0, -1);
qemuDriverLock(driver); if (!(vm = qemuDomObjFromDomain(dom)))
vm = virDomainFindByUUID(&driver->domains, dom->uuid); return -1;
if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN];
virUUIDFormat(dom->uuid, uuidstr);
virReportError(VIR_ERR_NO_DOMAIN,
_("no domain with matching uuid '%s'"), uuidstr);
goto cleanup;
}
ret = vm->hasManagedSave; ret = vm->hasManagedSave;
cleanup:
if (vm)
virDomainObjUnlock(vm); virDomainObjUnlock(vm);
qemuDriverUnlock(driver);
return ret; return ret;
} }
static int static int
qemuDomainManagedSaveRemove(virDomainPtr dom, unsigned int flags) qemuDomainManagedSaveRemove(virDomainPtr dom, unsigned int flags)
{ {
virQEMUDriverPtr driver = dom->conn->privateData; virQEMUDriverPtr driver;
virDomainObjPtr vm = NULL; virDomainObjPtr vm;
int ret = -1; int ret = -1;
char *name = NULL; char *name = NULL;
virCheckFlags(0, -1); virCheckFlags(0, -1);
qemuDriverLock(driver); if (!(vm = qemuDomObjFromDomainDriver(dom, &driver)))
vm = virDomainFindByUUID(&driver->domains, dom->uuid); return -1;
if (!vm) {
char uuidstr[VIR_UUID_STRING_BUFLEN];
virUUIDFormat(dom->uuid, uuidstr);
virReportError(VIR_ERR_NO_DOMAIN,
_("no domain with matching uuid '%s'"), uuidstr);
goto cleanup;
}
name = qemuDomainManagedSavePath(driver, vm); name = qemuDomainManagedSavePath(driver, vm);
if (name == NULL) if (name == NULL)
...@@ -3369,7 +3343,6 @@ qemuDomainManagedSaveRemove(virDomainPtr dom, unsigned int flags) ...@@ -3369,7 +3343,6 @@ qemuDomainManagedSaveRemove(virDomainPtr dom, unsigned int flags)
cleanup: cleanup:
VIR_FREE(name); VIR_FREE(name);
if (vm)
virDomainObjUnlock(vm); virDomainObjUnlock(vm);
qemuDriverUnlock(driver); qemuDriverUnlock(driver);
return ret; return ret;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册