mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-02 09:55:18 +00:00
CH: use virDomainObjBeginJob()
This patch removes virCHDomainObjBeginJob() and replaces it with call to the generalized virDomainObjBeginJob(). Signed-off-by: Kristina Hanicova <khanicov@redhat.com> Signed-off-by: Ján Tomko <jtomko@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
28ed7ceb4e
commit
67bc73f116
@ -32,60 +32,11 @@
|
||||
|
||||
VIR_LOG_INIT("ch.ch_domain");
|
||||
|
||||
/*
|
||||
* obj must be locked before calling, virCHDriver must NOT be locked
|
||||
*
|
||||
* This must be called by anything that will change the VM state
|
||||
* in any way
|
||||
*
|
||||
* Upon successful return, the object will have its ref count increased.
|
||||
* Successful calls must be followed by EndJob eventually.
|
||||
*/
|
||||
int
|
||||
virCHDomainObjBeginJob(virDomainObj *obj, virDomainJob job)
|
||||
{
|
||||
unsigned long long now;
|
||||
unsigned long long then;
|
||||
|
||||
if (virTimeMillisNow(&now) < 0)
|
||||
return -1;
|
||||
then = now + CH_JOB_WAIT_TIME;
|
||||
|
||||
while (obj->job->active) {
|
||||
VIR_DEBUG("Wait normal job condition for starting job: %s",
|
||||
virDomainJobTypeToString(job));
|
||||
if (virCondWaitUntil(&obj->job->cond, &obj->parent.lock, then) < 0) {
|
||||
VIR_WARN("Cannot start job (%s) for domain %s;"
|
||||
" current job is (%s) owned by (%llu)",
|
||||
virDomainJobTypeToString(job),
|
||||
obj->def->name,
|
||||
virDomainJobTypeToString(obj->job->active),
|
||||
obj->job->owner);
|
||||
|
||||
if (errno == ETIMEDOUT)
|
||||
virReportError(VIR_ERR_OPERATION_TIMEOUT,
|
||||
"%s", _("cannot acquire state change lock"));
|
||||
else
|
||||
virReportSystemError(errno,
|
||||
"%s", _("cannot acquire job mutex"));
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
virDomainObjResetJob(obj->job);
|
||||
|
||||
VIR_DEBUG("Starting job: %s", virDomainJobTypeToString(job));
|
||||
obj->job->active = job;
|
||||
obj->job->owner = virThreadSelfID();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* obj must be locked and have a reference before calling
|
||||
*
|
||||
* To be called after completing the work associated with the
|
||||
* earlier virCHDomainBeginJob() call
|
||||
* earlier virDomainObjBeginJob() call
|
||||
*/
|
||||
void
|
||||
virCHDomainObjEndJob(virDomainObj *obj)
|
||||
|
@ -26,9 +26,6 @@
|
||||
#include "vircgroup.h"
|
||||
#include "virdomainjob.h"
|
||||
|
||||
/* Give up waiting for mutex after 30 seconds */
|
||||
#define CH_JOB_WAIT_TIME (1000ull * 30)
|
||||
|
||||
|
||||
typedef struct _virCHDomainObjPrivate virCHDomainObjPrivate;
|
||||
struct _virCHDomainObjPrivate {
|
||||
@ -60,10 +57,6 @@ struct _virCHDomainVcpuPrivate {
|
||||
extern virDomainXMLPrivateDataCallbacks virCHDriverPrivateDataCallbacks;
|
||||
extern virDomainDefParserConfig virCHDriverDomainDefParserConfig;
|
||||
|
||||
int
|
||||
virCHDomainObjBeginJob(virDomainObj *obj, virDomainJob job)
|
||||
G_GNUC_WARN_UNUSED_RESULT;
|
||||
|
||||
void
|
||||
virCHDomainObjEndJob(virDomainObj *obj);
|
||||
|
||||
|
@ -217,7 +217,7 @@ chDomainCreateXML(virConnectPtr conn,
|
||||
NULL)))
|
||||
goto cleanup;
|
||||
|
||||
if (virCHDomainObjBeginJob(vm, VIR_JOB_MODIFY) < 0)
|
||||
if (virDomainObjBeginJob(vm, VIR_JOB_MODIFY) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (virCHProcessStart(driver, vm, VIR_DOMAIN_RUNNING_BOOTED) < 0)
|
||||
@ -251,7 +251,7 @@ chDomainCreateWithFlags(virDomainPtr dom, unsigned int flags)
|
||||
if (virDomainCreateWithFlagsEnsureACL(dom->conn, vm->def) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (virCHDomainObjBeginJob(vm, VIR_JOB_MODIFY) < 0)
|
||||
if (virDomainObjBeginJob(vm, VIR_JOB_MODIFY) < 0)
|
||||
goto cleanup;
|
||||
|
||||
ret = virCHProcessStart(driver, vm, VIR_DOMAIN_RUNNING_BOOTED);
|
||||
@ -390,7 +390,7 @@ chDomainShutdownFlags(virDomainPtr dom,
|
||||
if (virDomainShutdownFlagsEnsureACL(dom->conn, vm->def, flags) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (virCHDomainObjBeginJob(vm, VIR_JOB_MODIFY) < 0)
|
||||
if (virDomainObjBeginJob(vm, VIR_JOB_MODIFY) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (virDomainObjCheckActive(vm) < 0)
|
||||
@ -446,7 +446,7 @@ chDomainReboot(virDomainPtr dom, unsigned int flags)
|
||||
if (virDomainRebootEnsureACL(dom->conn, vm->def, flags) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (virCHDomainObjBeginJob(vm, VIR_JOB_MODIFY) < 0)
|
||||
if (virDomainObjBeginJob(vm, VIR_JOB_MODIFY) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (virDomainObjCheckActive(vm) < 0)
|
||||
@ -495,7 +495,7 @@ chDomainSuspend(virDomainPtr dom)
|
||||
if (virDomainSuspendEnsureACL(dom->conn, vm->def) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (virCHDomainObjBeginJob(vm, VIR_JOB_MODIFY) < 0)
|
||||
if (virDomainObjBeginJob(vm, VIR_JOB_MODIFY) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (virDomainObjCheckActive(vm) < 0)
|
||||
@ -540,7 +540,7 @@ chDomainResume(virDomainPtr dom)
|
||||
if (virDomainResumeEnsureACL(dom->conn, vm->def) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (virCHDomainObjBeginJob(vm, VIR_JOB_MODIFY) < 0)
|
||||
if (virDomainObjBeginJob(vm, VIR_JOB_MODIFY) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (virDomainObjCheckActive(vm) < 0)
|
||||
@ -594,7 +594,7 @@ chDomainDestroyFlags(virDomainPtr dom, unsigned int flags)
|
||||
if (virDomainDestroyFlagsEnsureACL(dom->conn, vm->def) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (virCHDomainObjBeginJob(vm, VIR_JOB_DESTROY) < 0)
|
||||
if (virDomainObjBeginJob(vm, VIR_JOB_DESTROY) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (virDomainObjCheckActive(vm) < 0)
|
||||
@ -1218,7 +1218,7 @@ chDomainPinVcpuFlags(virDomainPtr dom,
|
||||
if (virDomainPinVcpuFlagsEnsureACL(dom->conn, vm->def, flags) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (virCHDomainObjBeginJob(vm, VIR_JOB_MODIFY) < 0)
|
||||
if (virDomainObjBeginJob(vm, VIR_JOB_MODIFY) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0)
|
||||
@ -1355,7 +1355,7 @@ chDomainPinEmulator(virDomainPtr dom,
|
||||
if (virDomainPinEmulatorEnsureACL(dom->conn, vm->def, flags) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (virCHDomainObjBeginJob(vm, VIR_JOB_MODIFY) < 0)
|
||||
if (virDomainObjBeginJob(vm, VIR_JOB_MODIFY) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0)
|
||||
@ -1626,7 +1626,7 @@ chDomainSetNumaParameters(virDomainPtr dom,
|
||||
}
|
||||
}
|
||||
|
||||
if (virCHDomainObjBeginJob(vm, VIR_JOB_MODIFY) < 0)
|
||||
if (virDomainObjBeginJob(vm, VIR_JOB_MODIFY) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (virDomainObjGetDefs(vm, flags, &def, &persistentDef) < 0)
|
||||
|
Loading…
x
Reference in New Issue
Block a user