mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
qemu: turn qemuDomainObjExitMonitor into void
This reverts my commit dc2fd51fd727bbb6de172e0ca4b7dd307bb99180 Check for domain liveness in qemuDomainObjExitMonitor which fixed the symptoms of the bug later fixed by commit 81f50cb92d16643bcd749e3ab5b404b8b7cec643 qemu: Avoid calling qemuProcessStop without a job Signed-off-by: Ján Tomko <jtomko@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
parent
c3e79a9008
commit
f1ea5bd506
@ -170,11 +170,6 @@ To acquire the QEMU monitor lock
|
|||||||
- Acquires the virDomainObj *lock
|
- Acquires the virDomainObj *lock
|
||||||
|
|
||||||
These functions must not be used by an asynchronous job.
|
These functions must not be used by an asynchronous job.
|
||||||
Note that the virDomainObj is unlocked during the time in
|
|
||||||
monitor and it can be changed, e.g. if QEMU dies, qemuProcessStop
|
|
||||||
may free the live domain definition and put the persistent
|
|
||||||
definition back in vm->def. The callers should check the return
|
|
||||||
value of ExitMonitor to see if the domain is still alive.
|
|
||||||
|
|
||||||
|
|
||||||
To acquire the QEMU monitor lock as part of an asynchronous job
|
To acquire the QEMU monitor lock as part of an asynchronous job
|
||||||
|
@ -5893,24 +5893,11 @@ void qemuDomainObjEnterMonitor(virQEMUDriver *driver,
|
|||||||
/* obj must NOT be locked before calling
|
/* obj must NOT be locked before calling
|
||||||
*
|
*
|
||||||
* Should be paired with an earlier qemuDomainObjEnterMonitor() call
|
* Should be paired with an earlier qemuDomainObjEnterMonitor() call
|
||||||
*
|
|
||||||
* Returns -1 if the domain is no longer alive after exiting the monitor.
|
|
||||||
* In that case, the caller should be careful when using obj's data,
|
|
||||||
* e.g. the live definition in vm->def has been freed by qemuProcessStop
|
|
||||||
* and replaced by the persistent definition, so pointers stolen
|
|
||||||
* from the live definition could no longer be valid.
|
|
||||||
*/
|
*/
|
||||||
int qemuDomainObjExitMonitor(virQEMUDriver *driver,
|
void qemuDomainObjExitMonitor(virQEMUDriver *driver,
|
||||||
virDomainObj *obj)
|
virDomainObj *obj)
|
||||||
{
|
{
|
||||||
qemuDomainObjExitMonitorInternal(driver, obj);
|
qemuDomainObjExitMonitorInternal(driver, obj);
|
||||||
if (!virDomainObjIsActive(obj)) {
|
|
||||||
if (virGetLastErrorCode() == VIR_ERR_OK)
|
|
||||||
virReportError(VIR_ERR_OPERATION_FAILED, "%s",
|
|
||||||
_("domain is no longer running"));
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -487,7 +487,7 @@ qemuMonitor *qemuDomainGetMonitor(virDomainObj *vm)
|
|||||||
void qemuDomainObjEnterMonitor(virQEMUDriver *driver,
|
void qemuDomainObjEnterMonitor(virQEMUDriver *driver,
|
||||||
virDomainObj *obj)
|
virDomainObj *obj)
|
||||||
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
|
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
|
||||||
int qemuDomainObjExitMonitor(virQEMUDriver *driver,
|
void qemuDomainObjExitMonitor(virQEMUDriver *driver,
|
||||||
virDomainObj *obj)
|
virDomainObj *obj)
|
||||||
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
|
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
|
||||||
int qemuDomainObjEnterMonitorAsync(virQEMUDriver *driver,
|
int qemuDomainObjEnterMonitorAsync(virQEMUDriver *driver,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user