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:
Kristina Hanicova 2022-07-22 16:25:31 +02:00 committed by Jonathon Jongsma
parent 52c7c31c80
commit cee50d1187
4 changed files with 17 additions and 15 deletions

View File

@ -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;
}

View File

@ -208,3 +208,5 @@ struct _virDomainObjPrivateJobCallbacks {
int virDomainObjInitJob(virDomainJobObj *job,
virDomainObjPrivateJobCallbacks *cb);
void virDomainObjResetJob(virDomainJobObj *job);

View File

@ -1591,6 +1591,7 @@ virDomainJobStatusToType;
virDomainJobTypeFromString;
virDomainJobTypeToString;
virDomainObjInitJob;
virDomainObjResetJob;
# hypervisor/virclosecallbacks.h

View File

@ -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