From: "Daniel P. Berrange" <berrange@xxxxxxxxxx> There is no need to hold the mutex when unref'ing virObject instances Signed-off-by: Daniel P. Berrange <berrange@xxxxxxxxxx> --- src/conf/domain_conf.c | 4 +--- src/qemu/qemu_driver.c | 4 ++-- src/rpc/virnetserver.c | 3 --- 3 files changed, 3 insertions(+), 8 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 4aa08d0..0514540 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -741,9 +741,7 @@ static void virDomainObjListDataFree(void *payload, const void *name ATTRIBUTE_UNUSED) { virDomainObjPtr obj = payload; - virDomainObjLock(obj); - if (virObjectUnref(obj)) - virDomainObjUnlock(obj); + virObjectUnref(obj); } int virDomainObjListInit(virDomainObjListPtr doms) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 6848924..e963ed3 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -3499,8 +3499,8 @@ endjob: ignore_value(qemuDomainObjEndAsyncJob(driver, wdEvent->vm)); unlock: - if (virObjectUnref(wdEvent->vm)) - virDomainObjUnlock(wdEvent->vm); + virDomainObjUnlock(wdEvent->vm); + virObjectUnref(wdEvent->vm); qemuDriverUnlock(driver); VIR_FREE(wdEvent); } diff --git a/src/rpc/virnetserver.c b/src/rpc/virnetserver.c index 23493bd..ae4ed46 100644 --- a/src/rpc/virnetserver.c +++ b/src/rpc/virnetserver.c @@ -191,10 +191,7 @@ static void virNetServerHandleJob(void *jobOpaque, void *opaque) if (virNetServerProcessMsg(srv, job->client, job->prog, job->msg) < 0) goto error; - virNetServerLock(srv); virObjectUnref(job->prog); - virNetServerUnlock(srv); - virObjectUnref(job->client); VIR_FREE(job); return; -- 1.7.11.2 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list