From nobody Sat May 4 04:34:29 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1508866538089355.71825214508647; Tue, 24 Oct 2017 10:35:38 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 593E42CE974; Tue, 24 Oct 2017 17:35:36 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 314E117B13; Tue, 24 Oct 2017 17:35:36 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id ECAA21804487; Tue, 24 Oct 2017 17:35:35 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v9OHZKGX024648 for ; Tue, 24 Oct 2017 13:35:20 -0400 Received: by smtp.corp.redhat.com (Postfix) id 158CC6BF87; Tue, 24 Oct 2017 17:35:20 +0000 (UTC) Received: from mx1.redhat.com (ext-mx02.extmail.prod.ext.phx2.redhat.com [10.5.110.26]) by smtp.corp.redhat.com (Postfix) with ESMTPS id EA1746BF90; Tue, 24 Oct 2017 17:35:15 +0000 (UTC) Received: from mail-pg0-f68.google.com (mail-pg0-f68.google.com [74.125.83.68]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id CA1A68765D; Tue, 24 Oct 2017 17:35:13 +0000 (UTC) Received: by mail-pg0-f68.google.com with SMTP id k7so15097176pga.3; Tue, 24 Oct 2017 10:35:13 -0700 (PDT) Received: from ps-f25-dev.eng.nutanix.com ([205.209.132.2]) by smtp.gmail.com with ESMTPSA id k2sm1333236pff.126.2017.10.24.10.35.11 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 24 Oct 2017 10:35:11 -0700 (PDT) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 593E42CE974 Authentication-Results: ext-mx05.extmail.prod.ext.phx2.redhat.com; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ext-mx05.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=libvir-list-bounces@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 593E42CE974 Authentication-Results: mx1.redhat.com; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="bww8bEM9" DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com CA1A68765D Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=saxenap.ltc@gmail.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com CA1A68765D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=UWzfYiVWPZP5FaPsjljB9/tSF8vtWRjvDU2TTUyc/YQ=; b=bww8bEM9g2eBvjMHIJpE2/2hURqDrroK+l1MLQnmOwsZbjhOshYCVrswmq65fm7Ifh zVZGKIrnDp2uZUWVmXs4xkqgVcPiB3Gj8jcYRX4bYpNCiUoR2hUfI+6/LiqZJ+EV5+3N WhipBAArPskM7hsO0KEHII8UvxLlmfn8U7OKGuQxPNNm0wuNDlsOKib5qLSuK5rnV3A2 aw7MGSjzjzPf/JKry5kaMAIVdPdnfkn3yab5rYz06iTQC+2AAs/WpdSAWbzxzU0d1FY4 N+XpLSbtrbM/CXTWmTL7nktgQpS4CFw5/JtvpQ5TuujIb27tNYCkj6/m7LF3LZ2VP+wc NFuw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=UWzfYiVWPZP5FaPsjljB9/tSF8vtWRjvDU2TTUyc/YQ=; b=AkvVvVbOhIN9l6IFlC75HA48p9LGj4DoZjK4MOf5Q70nUbACotOGUXF6Xw4zgmjD74 jIjqNQN/hpI0viztxJAo19oYci7IrhNGcYLCnSuiYdLrxjUg8iHaNRh4wueWjASAWtnT t8J0Fj7Pdl6j1e+w2q8YzgHqe0I4K47yocvDoqVRNaaU6YfhKSeb2Yv4/z1YHbIyG8Tj 43vUU/dYtIF0HCCAMBT1EaTzWs/3oDcJRG8zx+PD0aYQFPxS2Mp2qxDDqGWn1bxVBCnD qdT/GsPqmC8MS3RH/fuTc4FNwqpnjB4SOM/cD5ZrqAceRiNhV1HgA3ZmKBopTc//r8+A K8mA== X-Gm-Message-State: AMCzsaVTiXDj8SWxC7Y/g6V4qf53UrnK2M5z8U5f/AGz2rr98td2J25G 77C9yLzg0q4cqMXGb6aBtfv8kA== X-Google-Smtp-Source: ABhQp+T2BKxWZN0yur3OPp9pRvd5eIqkfZRBj1Vsx2X8Sdl8iSkgv5Ag1gU8hf5pMai7AXMOfVbQ3A== X-Received: by 10.99.116.89 with SMTP id e25mr15496494pgn.383.1508866512670; Tue, 24 Oct 2017 10:35:12 -0700 (PDT) From: Prerna Saxena To: libvir-list@redhat.com Date: Tue, 24 Oct 2017 10:34:58 -0700 Message-Id: <20171024173501.18105-6-saxenap.ltc@gmail.com> In-Reply-To: <20171024173501.18105-1-saxenap.ltc@gmail.com> References: <20171024173501.18105-1-saxenap.ltc@gmail.com> X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Tue, 24 Oct 2017 17:35:14 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Tue, 24 Oct 2017 17:35:14 +0000 (UTC) for IP:'74.125.83.68' DOMAIN:'mail-pg0-f68.google.com' HELO:'mail-pg0-f68.google.com' FROM:'saxenap.ltc@gmail.com' RCPT:'' X-RedHat-Spam-Score: 0.37 (DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, RCVD_IN_SORBS_SPAM, SPF_PASS) 74.125.83.68 mail-pg0-f68.google.com 74.125.83.68 mail-pg0-f68.google.com X-Scanned-By: MIMEDefang 2.78 on 10.5.110.26 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-loop: libvir-list@redhat.com Cc: --jdenemar@redhat.com, --pkrempa@redhat.com Subject: [libvirt] [[RFC] 5/8] Events: Plumb event handling calls before a domain's APIs complete. X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Tue, 24 Oct 2017 17:35:37 +0000 (UTC) X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Prerna Saxena --- src/qemu/qemu_driver.c | 131 +++++++++++++++++++++++++++++++++++++++++++++= ++-- 1 file changed, 128 insertions(+), 3 deletions(-) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 8a005d0..b249347 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -1900,6 +1900,7 @@ static int qemuDomainSuspend(virDomainPtr dom) qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); =20 qemuDomainEventQueue(driver, event); @@ -1967,6 +1968,7 @@ static int qemuDomainResume(virDomainPtr dom) qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); qemuDomainEventQueue(driver, event); virObjectUnref(cfg); @@ -2057,6 +2059,7 @@ static int qemuDomainShutdownFlags(virDomainPtr dom, = unsigned int flags) qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -2159,6 +2162,7 @@ qemuDomainReboot(virDomainPtr dom, unsigned int flags) qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -2206,6 +2210,7 @@ qemuDomainReset(virDomainPtr dom, unsigned int flags) qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -2294,6 +2299,7 @@ qemuDomainDestroyFlags(virDomainPtr dom, qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); qemuDomainEventQueue(driver, event); return ret; @@ -2307,6 +2313,7 @@ qemuDomainDestroy(virDomainPtr dom) =20 static char *qemuDomainGetOSType(virDomainPtr dom) { virDomainObjPtr vm; + virQEMUDriverPtr driver =3D dom->conn->privateData; char *type =3D NULL; =20 if (!(vm =3D qemuDomObjFromDomain(dom))) @@ -2318,6 +2325,7 @@ static char *qemuDomainGetOSType(virDomainPtr dom) { ignore_value(VIR_STRDUP(type, virDomainOSTypeToString(vm->def->os.type= ))); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return type; } @@ -2328,6 +2336,7 @@ qemuDomainGetMaxMemory(virDomainPtr dom) { virDomainObjPtr vm; unsigned long long ret =3D 0; + virQEMUDriverPtr driver =3D dom->conn->privateData; =20 if (!(vm =3D qemuDomObjFromDomain(dom))) goto cleanup; @@ -2338,6 +2347,7 @@ qemuDomainGetMaxMemory(virDomainPtr dom) ret =3D virDomainDefGetMemoryTotal(vm->def); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -2455,6 +2465,7 @@ static int qemuDomainSetMemoryFlags(virDomainPtr dom,= unsigned long newmem, qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); virObjectUnref(cfg); return ret; @@ -2543,6 +2554,7 @@ static int qemuDomainSetMemoryStatsPeriod(virDomainPt= r dom, int period, qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); virObjectUnref(cfg); return ret; @@ -2583,6 +2595,7 @@ static int qemuDomainInjectNMI(virDomainPtr domain, u= nsigned int flags) qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -2646,6 +2659,7 @@ static int qemuDomainSendKey(virDomainPtr domain, qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -2702,6 +2716,7 @@ qemuDomainGetInfo(virDomainPtr dom, ret =3D 0; =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -2739,6 +2754,7 @@ qemuDomainGetControlInfo(virDomainPtr dom, virDomainObjPtr vm; qemuDomainObjPrivatePtr priv; int ret =3D -1; + virQEMUDriverPtr driver =3D dom->conn->privateData; =20 virCheckFlags(0, -1); =20 @@ -2788,6 +2804,7 @@ qemuDomainGetControlInfo(virDomainPtr dom, ret =3D 0; =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -3577,6 +3594,7 @@ qemuDomainSaveFlags(virDomainPtr dom, const char *pat= h, const char *dxml, compressedpath, dxml, flags); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); VIR_FREE(compressedpath); virObjectUnref(cfg); @@ -3653,6 +3671,7 @@ qemuDomainManagedSave(virDomainPtr dom, unsigned int = flags) vm->hasManagedSave =3D true; =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); VIR_FREE(name); VIR_FREE(compressedpath); @@ -3689,7 +3708,7 @@ qemuDomainHasManagedSaveImage(virDomainPtr dom, unsig= ned int flags) { virDomainObjPtr vm =3D NULL; int ret =3D -1; - + virQEMUDriverPtr driver =3D dom->conn->privateData; virCheckFlags(0, -1); =20 if (!(vm =3D qemuDomObjFromDomain(dom))) @@ -3701,6 +3720,7 @@ qemuDomainHasManagedSaveImage(virDomainPtr dom, unsig= ned int flags) ret =3D vm->hasManagedSave; =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -3736,6 +3756,7 @@ qemuDomainManagedSaveRemove(virDomainPtr dom, unsigne= d int flags) =20 cleanup: VIR_FREE(name); + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -3976,6 +3997,7 @@ qemuDomainCoreDumpWithFormat(virDomainPtr dom, qemuDomainRemoveInactiveJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); qemuDomainEventQueue(driver, event); return ret; @@ -4078,6 +4100,7 @@ qemuDomainScreenshot(virDomainPtr dom, qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); virObjectUnref(cfg); return ret; @@ -4832,6 +4855,7 @@ static void qemuProcessEventHandler(void *data, void = *opaque) break; } =20 + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); VIR_FREE(processEvent); } @@ -4973,6 +4997,7 @@ qemuDomainSetVcpusFlags(virDomainPtr dom, qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -5144,6 +5169,7 @@ qemuDomainPinVcpuFlags(virDomainPtr dom, qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); virBitmapFree(pcpumap); virObjectUnref(cfg); @@ -5172,6 +5198,7 @@ qemuDomainGetVcpuPinInfo(virDomainPtr dom, bool live; int ret =3D -1; virBitmapPtr autoCpuset =3D NULL; + virQEMUDriverPtr driver =3D dom->conn->privateData; =20 virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG, -1); @@ -5191,6 +5218,7 @@ qemuDomainGetVcpuPinInfo(virDomainPtr dom, ret =3D virDomainDefGetVcpuPinInfoHelper(def, maplen, ncpumaps, cpumap= s, virHostCPUGetCount(), autoCpuse= t); cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -5302,6 +5330,7 @@ qemuDomainPinEmulator(virDomainPtr dom, qemuDomainEventQueue(driver, event); VIR_FREE(str); virBitmapFree(pcpumap); + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); virObjectUnref(cfg); return ret; @@ -5321,6 +5350,7 @@ qemuDomainGetEmulatorPinInfo(virDomainPtr dom, virBitmapPtr cpumask =3D NULL; virBitmapPtr bitmap =3D NULL; virBitmapPtr autoCpuset =3D NULL; + virQEMUDriverPtr driver =3D dom->conn->privateData; =20 virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG, -1); @@ -5359,6 +5389,7 @@ qemuDomainGetEmulatorPinInfo(virDomainPtr dom, ret =3D 1; =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); virBitmapFree(bitmap); return ret; @@ -5373,6 +5404,7 @@ qemuDomainGetVcpus(virDomainPtr dom, { virDomainObjPtr vm; int ret =3D -1; + virQEMUDriverPtr driver =3D dom->conn->privateData; =20 if (!(vm =3D qemuDomObjFromDomain(dom))) goto cleanup; @@ -5390,6 +5422,7 @@ qemuDomainGetVcpus(virDomainPtr dom, NULL); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -5465,6 +5498,7 @@ qemuDomainGetVcpusFlags(virDomainPtr dom, unsigned in= t flags) =20 =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); VIR_FREE(cpuinfo); return ret; @@ -5649,6 +5683,7 @@ qemuDomainGetIOThreadInfo(virDomainPtr dom, ret =3D qemuDomainGetIOThreadsConfig(targetDef, info); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -5785,6 +5820,7 @@ qemuDomainPinIOThread(virDomainPtr dom, qemuDomainEventQueue(driver, event); VIR_FREE(str); virBitmapFree(pcpumap); + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); virObjectUnref(cfg); return ret; @@ -6098,6 +6134,7 @@ qemuDomainAddIOThread(virDomainPtr dom, ret =3D qemuDomainChgIOThread(driver, vm, iothread_id, true, flags); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -6130,6 +6167,7 @@ qemuDomainDelIOThread(virDomainPtr dom, ret =3D qemuDomainChgIOThread(driver, vm, iothread_id, false, flags); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -6178,6 +6216,7 @@ static int qemuDomainGetSecurityLabel(virDomainPtr do= m, virSecurityLabelPtr secl ret =3D 0; =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -6240,6 +6279,7 @@ static int qemuDomainGetSecurityLabelList(virDomainPt= r dom, } =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -6738,6 +6778,7 @@ qemuDomainRestoreFlags(virConnectPtr conn, virFileWrapperFdFree(wrapperFd); if (vm && ret < 0) qemuDomainRemoveInactiveJob(driver, vm); + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); virNWFilterUnlockFilterUpdates(); return ret; @@ -6893,6 +6934,7 @@ qemuDomainManagedSaveGetXMLDesc(virDomainPtr dom, uns= igned int flags) virQEMUSaveDataFree(data); virDomainDefFree(def); VIR_FORCE_CLOSE(fd); + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); VIR_FREE(path); return ret; @@ -7045,6 +7087,8 @@ static char ret =3D qemuDomainFormatXML(driver, vm, flags); =20 cleanup: + if (vm) + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -7327,6 +7371,7 @@ qemuDomainCreateWithFlags(virDomainPtr dom, unsigned = int flags) qemuProcessEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); virNWFilterUnlockFilterUpdates(); return ret; @@ -7421,6 +7466,7 @@ qemuDomainDefineXMLFlags(virConnectPtr conn, cleanup: virDomainDefFree(oldDef); virDomainDefFree(def); + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); qemuDomainEventQueue(driver, event); virObjectUnref(caps); @@ -7548,6 +7594,7 @@ qemuDomainUndefineFlags(virDomainPtr dom, =20 cleanup: VIR_FREE(name); + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); qemuDomainEventQueue(driver, event); virObjectUnref(cfg); @@ -8471,6 +8518,7 @@ qemuDomainAttachDeviceFlags(virDomainPtr dom, qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); virNWFilterUnlockFilterUpdates(); return ret; @@ -8586,6 +8634,7 @@ static int qemuDomainUpdateDeviceFlags(virDomainPtr d= om, if (dev !=3D dev_copy) virDomainDeviceDefFree(dev_copy); virDomainDeviceDefFree(dev); + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); virObjectUnref(caps); virObjectUnref(cfg); @@ -8710,6 +8759,7 @@ qemuDomainDetachDeviceFlags(virDomainPtr dom, qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -8725,7 +8775,7 @@ static int qemuDomainGetAutostart(virDomainPtr dom, { virDomainObjPtr vm; int ret =3D -1; - + virQEMUDriverPtr driver =3D dom->conn->privateData; if (!(vm =3D qemuDomObjFromDomain(dom))) goto cleanup; =20 @@ -8736,6 +8786,7 @@ static int qemuDomainGetAutostart(virDomainPtr dom, ret =3D 0; =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -8811,6 +8862,7 @@ static int qemuDomainSetAutostart(virDomainPtr dom, cleanup: VIR_FREE(configFile); VIR_FREE(autostartLink); + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); virObjectUnref(cfg); return ret; @@ -8863,6 +8915,7 @@ static char *qemuDomainGetSchedulerType(virDomainPtr = dom, ignore_value(VIR_STRDUP(ret, "posix")); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -9258,6 +9311,7 @@ qemuDomainSetBlkioParameters(virDomainPtr dom, qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); virObjectUnref(cfg); return ret; @@ -9351,6 +9405,7 @@ qemuDomainGetBlkioParameters(virDomainPtr dom, ret =3D 0; =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -9495,6 +9550,7 @@ qemuDomainSetMemoryParameters(virDomainPtr dom, qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); virObjectUnref(cfg); return ret; @@ -9582,6 +9638,7 @@ qemuDomainGetMemoryParameters(virDomainPtr dom, ret =3D 0; =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -9772,6 +9829,7 @@ qemuDomainSetNumaParameters(virDomainPtr dom, =20 cleanup: virBitmapFree(nodeset); + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); virObjectUnref(cfg); return ret; @@ -9792,6 +9850,7 @@ qemuDomainGetNumaParameters(virDomainPtr dom, virDomainDefPtr def =3D NULL; bool live =3D false; virBitmapPtr autoNodeset =3D NULL; + virQEMUDriverPtr driver =3D dom->conn->privateData; =20 virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | VIR_DOMAIN_AFFECT_CONFIG | @@ -9852,6 +9911,7 @@ qemuDomainGetNumaParameters(virDomainPtr dom, =20 cleanup: VIR_FREE(nodeset); + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -9969,6 +10029,7 @@ qemuDomainSetPerfEvents(virDomainPtr dom, qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); virObjectUnref(cfg); return ret; @@ -10035,6 +10096,7 @@ qemuDomainGetPerfEvents(virDomainPtr dom, qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); virTypedParamsFree(par, npar); return ret; @@ -10449,6 +10511,7 @@ qemuDomainSetSchedulerParametersFlags(virDomainPtr = dom, =20 cleanup: virDomainDefFree(persistentDefCopy); + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); if (eventNparams) virTypedParamsFree(eventParams, eventNparams); @@ -10694,6 +10757,7 @@ qemuDomainGetSchedulerParametersFlags(virDomainPtr = dom, ret =3D 0; =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -10793,6 +10857,7 @@ qemuDomainBlockResize(virDomainPtr dom, =20 cleanup: VIR_FREE(device); + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -10938,6 +11003,7 @@ qemuDomainBlockStats(virDomainPtr dom, qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); VIR_FREE(blockstats); return ret; @@ -11024,6 +11090,7 @@ qemuDomainBlockStatsFlags(virDomainPtr dom, =20 cleanup: VIR_FREE(blockstats); + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -11033,6 +11100,7 @@ qemuDomainInterfaceStats(virDomainPtr dom, const char *path, virDomainInterfaceStatsPtr stats) { + virQEMUDriverPtr driver =3D dom->conn->privateData; virDomainObjPtr vm; virDomainNetDefPtr net =3D NULL; int ret =3D -1; @@ -11066,6 +11134,7 @@ qemuDomainInterfaceStats(virDomainPtr dom, =20 ret =3D 0; cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -11263,6 +11332,7 @@ qemuDomainSetInterfaceParameters(virDomainPtr dom, cleanup: virNetDevBandwidthFree(bandwidth); virNetDevBandwidthFree(newBandwidth); + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); virObjectUnref(cfg); return ret; @@ -11279,6 +11349,7 @@ qemuDomainGetInterfaceParameters(virDomainPtr dom, virDomainObjPtr vm =3D NULL; virDomainDefPtr def =3D NULL; virDomainNetDefPtr net =3D NULL; + virQEMUDriverPtr driver =3D dom->conn->privateData; int ret =3D -1; =20 virCheckFlags(VIR_DOMAIN_AFFECT_LIVE | @@ -11377,6 +11448,7 @@ qemuDomainGetInterfaceParameters(virDomainPtr dom, ret =3D 0; =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -11450,6 +11522,7 @@ qemuDomainMemoryStats(virDomainPtr dom, qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -11598,6 +11671,7 @@ qemuDomainMemoryPeek(virDomainPtr dom, if (tmp) unlink(tmp); VIR_FREE(tmp); + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); virObjectUnref(cfg); return ret; @@ -11898,6 +11972,7 @@ qemuDomainGetBlockInfo(virDomainPtr dom, cleanup: VIR_FREE(alias); virHashFree(stats); + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); virObjectUnref(cfg); return ret; @@ -13187,6 +13262,7 @@ qemuDomainGetJobInfo(virDomainPtr dom, ret =3D qemuDomainJobInfoToInfo(&jobInfo, info); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -13232,6 +13308,7 @@ qemuDomainGetJobStats(virDomainPtr dom, VIR_FREE(priv->job.completed); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -13295,6 +13372,7 @@ static int qemuDomainAbortJob(virDomainPtr dom) qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -13339,6 +13417,7 @@ qemuDomainMigrateSetMaxDowntime(virDomainPtr dom, qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -13393,6 +13472,7 @@ qemuDomainMigrateGetMaxDowntime(virDomainPtr dom, qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -13448,6 +13528,7 @@ qemuDomainMigrateGetCompressionCache(virDomainPtr d= om, qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -13503,6 +13584,7 @@ qemuDomainMigrateSetCompressionCache(virDomainPtr d= om, qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -13561,6 +13643,7 @@ qemuDomainMigrateSetMaxSpeed(virDomainPtr dom, } =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -13645,6 +13728,7 @@ qemuDomainMigrateStartPostCopy(virDomainPtr dom, qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -15142,6 +15226,7 @@ qemuDomainSnapshotCreateXML(virDomainPtr domain, qemuDomainObjEndAsyncJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); virDomainSnapshotDefFree(def); VIR_FREE(xml); @@ -15209,6 +15294,7 @@ qemuDomainListAllSnapshots(virDomainPtr domain, { virDomainObjPtr vm =3D NULL; int n =3D -1; + virQEMUDriverPtr driver =3D domain->conn->privateData; =20 virCheckFlags(VIR_DOMAIN_SNAPSHOT_LIST_ROOTS | VIR_DOMAIN_SNAPSHOT_FILTERS_ALL, -1); @@ -15222,6 +15308,7 @@ qemuDomainListAllSnapshots(virDomainPtr domain, n =3D virDomainListSnapshots(vm->snapshots, NULL, domain, snaps, flags= ); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return n; } @@ -15407,7 +15494,7 @@ qemuDomainSnapshotCurrent(virDomainPtr domain, { virDomainObjPtr vm; virDomainSnapshotPtr snapshot =3D NULL; - + virQEMUDriverPtr driver =3D domain->conn->privateData; virCheckFlags(0, NULL); =20 if (!(vm =3D qemuDomObjFromDomain(domain))) @@ -15425,6 +15512,7 @@ qemuDomainSnapshotCurrent(virDomainPtr domain, snapshot =3D virGetDomainSnapshot(domain, vm->current_snapshot->def->n= ame); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return snapshot; } @@ -15459,6 +15547,7 @@ qemuDomainSnapshotGetXMLDesc(virDomainSnapshotPtr s= napshot, 0); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return xml; } @@ -15926,6 +16015,7 @@ qemuDomainRevertToSnapshot(virDomainSnapshotPtr sna= pshot, qemuDomainEventQueue(driver, event); qemuDomainEventQueue(driver, event2); } + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); virObjectUnref(caps); virObjectUnref(cfg); @@ -16087,6 +16177,7 @@ qemuDomainSnapshotDelete(virDomainSnapshotPtr snaps= hot, qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); virObjectUnref(cfg); return ret; @@ -16133,6 +16224,7 @@ static int qemuDomainQemuMonitorCommand(virDomainPt= r domain, const char *cmd, qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -16241,6 +16333,7 @@ qemuDomainOpenConsole(virDomainPtr dom, size_t i; virDomainChrDefPtr chr =3D NULL; qemuDomainObjPrivatePtr priv; + virQEMUDriverPtr driver =3D dom->conn->privateData; =20 virCheckFlags(VIR_DOMAIN_CONSOLE_SAFE | VIR_DOMAIN_CONSOLE_FORCE, -1); @@ -16307,6 +16400,7 @@ qemuDomainOpenConsole(virDomainPtr dom, } =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -16322,6 +16416,7 @@ qemuDomainOpenChannel(virDomainPtr dom, size_t i; virDomainChrDefPtr chr =3D NULL; qemuDomainObjPrivatePtr priv; + virQEMUDriverPtr driver =3D dom->conn->privateData; =20 virCheckFlags(VIR_DOMAIN_CHANNEL_FORCE, -1); =20 @@ -16381,6 +16476,7 @@ qemuDomainOpenChannel(virDomainPtr dom, } =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -16606,6 +16702,7 @@ qemuDomainBlockPullCommon(virQEMUDriverPtr driver, VIR_FREE(basePath); VIR_FREE(backingPath); VIR_FREE(device); + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -16836,6 +16933,7 @@ qemuDomainGetBlockJobInfo(virDomainPtr dom, qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -16902,6 +17000,7 @@ qemuDomainBlockJobSetSpeed(virDomainPtr dom, qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); =20 return ret; @@ -17219,6 +17318,7 @@ qemuDomainBlockRebase(virDomainPtr dom, const char = *path, const char *base, dest =3D NULL; =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); virStorageSourceFree(dest); return ret; @@ -17625,6 +17725,7 @@ qemuDomainOpenGraphics(virDomainPtr dom, qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -17702,6 +17803,7 @@ qemuDomainOpenGraphicsFD(virDomainPtr dom, cleanup: VIR_FORCE_CLOSE(pair[0]); VIR_FORCE_CLOSE(pair[1]); + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -18121,6 +18223,7 @@ qemuDomainSetBlockIoTune(virDomainPtr dom, cleanup: VIR_FREE(info.group_name); VIR_FREE(device); + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); if (eventNparams) virTypedParamsFree(eventParams, eventNparams); @@ -18282,6 +18385,7 @@ qemuDomainGetBlockIoTune(virDomainPtr dom, cleanup: VIR_FREE(reply.group_name); VIR_FREE(device); + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -18353,6 +18457,7 @@ qemuDomainGetDiskErrors(virDomainPtr dom, qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); virHashFree(table); if (ret < 0) { @@ -18406,6 +18511,7 @@ qemuDomainSetMetadata(virDomainPtr dom, qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); virObjectUnref(caps); virObjectUnref(cfg); @@ -18420,6 +18526,7 @@ qemuDomainGetMetadata(virDomainPtr dom, { virDomainObjPtr vm; char *ret =3D NULL; + virQEMUDriverPtr driver =3D dom->conn->privateData; =20 if (!(vm =3D qemuDomObjFromDomain(dom))) return NULL; @@ -18430,6 +18537,7 @@ qemuDomainGetMetadata(virDomainPtr dom, ret =3D virDomainObjGetMetadata(vm, type, uri, flags); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -18447,6 +18555,7 @@ qemuDomainGetCPUStats(virDomainPtr domain, int ret =3D -1; qemuDomainObjPrivatePtr priv; virBitmapPtr guestvcpus =3D NULL; + virQEMUDriverPtr driver =3D domain->conn->privateData; =20 virCheckFlags(VIR_TYPED_PARAM_STRING_OKAY, -1); =20 @@ -18482,6 +18591,7 @@ qemuDomainGetCPUStats(virDomainPtr domain, start_cpu, ncpus, guestvcpus); cleanup: virBitmapFree(guestvcpus); + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -18569,6 +18679,7 @@ qemuDomainPMSuspendForDuration(virDomainPtr dom, qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -18617,6 +18728,7 @@ qemuDomainPMWakeup(virDomainPtr dom, qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -18683,6 +18795,7 @@ qemuDomainQemuAgentCommand(virDomainPtr domain, qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return result; } @@ -18972,6 +19085,7 @@ qemuDomainGetTime(virDomainPtr dom, qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -19054,6 +19168,7 @@ qemuDomainSetTime(virDomainPtr dom, qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -19092,6 +19207,7 @@ qemuDomainFSFreeze(virDomainPtr dom, qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -19136,6 +19252,7 @@ qemuDomainFSThaw(virDomainPtr dom, qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -20235,6 +20352,7 @@ qemuDomainGetFSInfo(virDomainPtr dom, qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); virDomainDefFree(def); virObjectUnref(caps); @@ -20295,6 +20413,7 @@ qemuDomainInterfaceAddresses(virDomainPtr dom, } =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -20443,6 +20562,7 @@ qemuDomainSetUserPassword(virDomainPtr dom, qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -20585,6 +20705,7 @@ static int qemuDomainRename(virDomainPtr dom, qemuDomainObjEndJob(driver, vm); =20 cleanup: + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -20698,6 +20819,7 @@ qemuDomainGetGuestVcpus(virDomainPtr dom, =20 cleanup: VIR_FREE(info); + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -20785,6 +20907,7 @@ qemuDomainSetGuestVcpus(virDomainPtr dom, cleanup: VIR_FREE(info); virBitmapFree(map); + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -20858,6 +20981,7 @@ qemuDomainSetVcpu(virDomainPtr dom, =20 cleanup: virBitmapFree(map); + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } @@ -20931,6 +21055,7 @@ qemuDomainSetBlockThreshold(virDomainPtr dom, =20 cleanup: VIR_FREE(nodename); + virDomainConsumeVMEvents(vm, driver); virDomainObjEndAPI(&vm); return ret; } --=20 2.9.5 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list