mirror of https://gitee.com/openkylin/libvirt.git
qemu & hypervisor: move qemuDomainObjResetJob() into hypervisor
This patch moves qemuDomainObjResetJob() as virDomainObjResetJob() into hypervisor in order to be used by other hypervisors as well. Signed-off-by: Kristina Hanicova <khanicov@redhat.com> Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
This commit is contained in:
parent
52c7c31c80
commit
cee50d1187
|
@ -137,3 +137,12 @@ virDomainObjInitJob(virDomainJobObj *job,
|
|||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
virDomainObjResetJob(virDomainJobObj *job)
|
||||
{
|
||||
job->active = VIR_JOB_NONE;
|
||||
job->owner = 0;
|
||||
g_clear_pointer(&job->ownerAPI, g_free);
|
||||
job->started = 0;
|
||||
}
|
||||
|
|
|
@ -208,3 +208,5 @@ struct _virDomainObjPrivateJobCallbacks {
|
|||
|
||||
int virDomainObjInitJob(virDomainJobObj *job,
|
||||
virDomainObjPrivateJobCallbacks *cb);
|
||||
|
||||
void virDomainObjResetJob(virDomainJobObj *job);
|
||||
|
|
|
@ -1591,6 +1591,7 @@ virDomainJobStatusToType;
|
|||
virDomainJobTypeFromString;
|
||||
virDomainJobTypeToString;
|
||||
virDomainObjInitJob;
|
||||
virDomainObjResetJob;
|
||||
|
||||
|
||||
# hypervisor/virclosecallbacks.h
|
||||
|
|
|
@ -150,16 +150,6 @@ qemuDomainEventEmitJobCompleted(virQEMUDriver *driver,
|
|||
}
|
||||
|
||||
|
||||
static void
|
||||
qemuDomainObjResetJob(virDomainJobObj *job)
|
||||
{
|
||||
job->active = VIR_JOB_NONE;
|
||||
job->owner = 0;
|
||||
g_clear_pointer(&job->ownerAPI, g_free);
|
||||
job->started = 0;
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
qemuDomainObjResetAgentJob(virDomainJobObj *job)
|
||||
{
|
||||
|
@ -219,7 +209,7 @@ qemuDomainObjPreserveJob(virDomainObj *obj,
|
|||
return -1;
|
||||
job->cb = priv->job.cb;
|
||||
|
||||
qemuDomainObjResetJob(&priv->job);
|
||||
virDomainObjResetJob(&priv->job);
|
||||
qemuDomainObjResetAsyncJob(&priv->job);
|
||||
return 0;
|
||||
}
|
||||
|
@ -263,7 +253,7 @@ qemuDomainObjRestoreAsyncJob(virDomainObj *vm,
|
|||
void
|
||||
qemuDomainObjClearJob(virDomainJobObj *job)
|
||||
{
|
||||
qemuDomainObjResetJob(job);
|
||||
virDomainObjResetJob(job);
|
||||
qemuDomainObjResetAsyncJob(job);
|
||||
g_clear_pointer(&job->current, virDomainJobDataFree);
|
||||
g_clear_pointer(&job->completed, virDomainJobDataFree);
|
||||
|
@ -772,7 +762,7 @@ qemuDomainObjDiscardAsyncJob(virDomainObj *obj)
|
|||
qemuDomainObjPrivate *priv = obj->privateData;
|
||||
|
||||
if (priv->job.active == VIR_JOB_ASYNC_NESTED)
|
||||
qemuDomainObjResetJob(&priv->job);
|
||||
virDomainObjResetJob(&priv->job);
|
||||
qemuDomainObjResetAsyncJob(&priv->job);
|
||||
qemuDomainSaveStatus(obj);
|
||||
}
|
||||
|
@ -919,7 +909,7 @@ qemuDomainObjBeginJobInternal(virQEMUDriver *driver,
|
|||
ignore_value(virTimeMillisNow(&now));
|
||||
|
||||
if (job) {
|
||||
qemuDomainObjResetJob(&priv->job);
|
||||
virDomainObjResetJob(&priv->job);
|
||||
|
||||
if (job != VIR_JOB_ASYNC) {
|
||||
VIR_DEBUG("Started job: %s (async=%s vm=%p name=%s)",
|
||||
|
@ -1180,7 +1170,7 @@ qemuDomainObjEndJob(virDomainObj *obj)
|
|||
virDomainAsyncJobTypeToString(priv->job.asyncJob),
|
||||
obj, obj->def->name);
|
||||
|
||||
qemuDomainObjResetJob(&priv->job);
|
||||
virDomainObjResetJob(&priv->job);
|
||||
if (qemuDomainTrackJob(job))
|
||||
qemuDomainSaveStatus(obj);
|
||||
/* We indeed need to wake up ALL threads waiting because
|
||||
|
|
Loading…
Reference in New Issue