mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-22 13:45:38 +00:00
libxl: acquire a job when receiving a migrating domain
Commit f86ae403
moved acquiring a job from libxlDomainStart()
to its callers. One spot missed was in libxlDoMigrateReceive().
Acquire a job in libxlDoMigrateReceive() before calling
libxlDomainStart().
Signed-off-by: Jim Fehlig <jfehlig@suse.com>
This commit is contained in:
parent
15120b8c61
commit
e80b84a743
@ -95,17 +95,20 @@ libxlDoMigrateReceive(void *opaque)
|
||||
int recvfd = args->recvfd;
|
||||
size_t i;
|
||||
int ret;
|
||||
bool remove_dom = 0;
|
||||
|
||||
virObjectLock(vm);
|
||||
if (libxlDomainObjBeginJob(driver, vm, LIBXL_JOB_MODIFY) < 0)
|
||||
goto cleanup;
|
||||
|
||||
/*
|
||||
* Always start the domain paused. If needed, unpause in the
|
||||
* finish phase, after transfer of the domain is complete.
|
||||
*/
|
||||
virObjectLock(vm);
|
||||
ret = libxlDomainStart(driver, vm, true, recvfd);
|
||||
virObjectUnlock(vm);
|
||||
|
||||
if (ret < 0 && !vm->persistent)
|
||||
virDomainObjListRemove(driver->domains, vm);
|
||||
remove_dom = true;
|
||||
|
||||
/* Remove all listen socks from event handler, and close them. */
|
||||
for (i = 0; i < nsocks; i++) {
|
||||
@ -117,6 +120,17 @@ libxlDoMigrateReceive(void *opaque)
|
||||
args->nsocks = 0;
|
||||
VIR_FORCE_CLOSE(recvfd);
|
||||
virObjectUnref(args);
|
||||
|
||||
if (!libxlDomainObjEndJob(driver, vm))
|
||||
vm = NULL;
|
||||
|
||||
cleanup:
|
||||
if (remove_dom && vm) {
|
||||
virDomainObjListRemove(driver->domains, vm);
|
||||
vm = NULL;
|
||||
}
|
||||
if (vm)
|
||||
virObjectUnlock(vm);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user