mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-28 08:35:22 +00:00
qemu: Use proper agent entering function when freezing filesystems
When doing snapshots, the filesystem freeze function used the agent
entering function that expects the qemud_driver unlocked. This might
cause a deadlock of the qemu driver if the agent does not respond.
The only call path of this function has the qemud_driver locked, so this
patch changes the entering functions to those expecting the driver
locked.
(cherry picked from commit e0316b5ebd
)
This commit is contained in:
parent
5c18805704
commit
ccc7671135
@ -10390,6 +10390,7 @@ qemuDomainSnapshotIsAllowed(virDomainObjPtr vm)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* this function expects the driver lock to be held by the caller */
|
||||||
static int
|
static int
|
||||||
qemuDomainSnapshotFSFreeze(struct qemud_driver *driver,
|
qemuDomainSnapshotFSFreeze(struct qemud_driver *driver,
|
||||||
virDomainObjPtr vm) {
|
virDomainObjPtr vm) {
|
||||||
@ -10408,9 +10409,9 @@ qemuDomainSnapshotFSFreeze(struct qemud_driver *driver,
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
qemuDomainObjEnterAgent(driver, vm);
|
qemuDomainObjEnterAgentWithDriver(driver, vm);
|
||||||
freezed = qemuAgentFSFreeze(priv->agent);
|
freezed = qemuAgentFSFreeze(priv->agent);
|
||||||
qemuDomainObjExitAgent(driver, vm);
|
qemuDomainObjExitAgentWithDriver(driver, vm);
|
||||||
|
|
||||||
return freezed;
|
return freezed;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user