From nobody Mon Feb 9 01:21:51 2026 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; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1562947580; cv=none; d=zoho.com; s=zohoarc; b=hT9fMXIUIAcemlw87jNaxVXpKv22EGb6EoFGgHaIuWXS9wysUsYw/67k4Ad4/iwjTo7uya0ullDdl3IwXGFNqGLqhbFsfypH7NgGucLHMebkjU6PKe7Zkq9cYrpuf7B147hUVCzIAo7Al/Db+fZsuuuRJy0kEOn+MMp0zPsMptk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1562947580; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=e9Eea/M3zrRc+TVi5ro2cgelDOFaJZJFQEpgM8DvryQ=; b=npdJg/haCZOp0K572LXsUHn+c8ZHg/oOfwKb70BtADMVCQTj+auVoq+XzcaDfbl3igOpZmR9LVggyffwqkczX5kEi5lLAN2fq11h2g8UC6V9PQO6lzuSEQvIs4dS9u76je/Rs8j1FVBIpkKrAcOyIq1BOq7ZsYfDQojofQf2Cu0= ARC-Authentication-Results: i=1; mx.zoho.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1562947580702859.4165877854008; Fri, 12 Jul 2019 09:06:20 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id E476E307D986; Fri, 12 Jul 2019 16:06:18 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id B5BDC5D756; Fri, 12 Jul 2019 16:06:18 +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 79CEE41F53; Fri, 12 Jul 2019 16:06:18 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id x6CG6FfT016318 for ; Fri, 12 Jul 2019 12:06:15 -0400 Received: by smtp.corp.redhat.com (Postfix) id 8CF1B60C70; Fri, 12 Jul 2019 16:06:15 +0000 (UTC) Received: from angien.brq.redhat.com (unknown [10.43.2.229]) by smtp.corp.redhat.com (Postfix) with ESMTP id E319060C05; Fri, 12 Jul 2019 16:06:14 +0000 (UTC) From: Peter Krempa To: libvir-list@redhat.com Date: Fri, 12 Jul 2019 18:05:45 +0200 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-loop: libvir-list@redhat.com Cc: Peter Krempa Subject: [libvirt] [PATCH 04/25] qemu: blockjob: Separate and unify block job (un)registration 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: , 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.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.48]); Fri, 12 Jul 2019 16:06:19 +0000 (UTC) Content-Type: text/plain; charset="utf-8" Rename and move qemuBlockJobTerminate to qemuBlockJobUnregister and separate bits from qemuBlockJobDiskNew which register the job with the disk. This creates an unified interface for other APIs to use. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_blockjob.c | 62 ++++++++++++++++++++++++---------------- 1 file changed, 38 insertions(+), 24 deletions(-) diff --git a/src/qemu/qemu_blockjob.c b/src/qemu/qemu_blockjob.c index b45103f2f3..c102417e43 100644 --- a/src/qemu/qemu_blockjob.c +++ b/src/qemu/qemu_blockjob.c @@ -92,6 +92,37 @@ qemuBlockJobDataNew(qemuBlockJobType type, } +static int +qemuBlockJobRegister(qemuBlockJobDataPtr job, + virDomainDiskDefPtr disk) +{ + if (disk) { + job->disk =3D disk; + QEMU_DOMAIN_DISK_PRIVATE(disk)->blockjob =3D virObjectRef(job); + } + + return 0; +} + + +static void +qemuBlockJobUnregister(qemuBlockJobDataPtr job) +{ + qemuDomainDiskPrivatePtr diskPriv; + + if (job->disk) { + diskPriv =3D QEMU_DOMAIN_DISK_PRIVATE(job->disk); + + if (job =3D=3D diskPriv->blockjob) { + virObjectUnref(diskPriv->blockjob); + diskPriv->blockjob =3D NULL; + } + + job->disk =3D NULL; + } +} + + /** * qemuBlockJobDiskNew: * @disk: disk definition @@ -105,16 +136,15 @@ qemuBlockJobDiskNew(virDomainDiskDefPtr disk, qemuBlockJobType type, const char *jobname) { - qemuBlockJobDataPtr job =3D NULL; + VIR_AUTOUNREF(qemuBlockJobDataPtr) job =3D NULL; if (!(job =3D qemuBlockJobDataNew(type, jobname))) return NULL; - job->disk =3D disk; - if (disk) - QEMU_DOMAIN_DISK_PRIVATE(disk)->blockjob =3D virObjectRef(job); + if (qemuBlockJobRegister(job, disk) < 0) + return NULL; - return job; + VIR_RETURN_PTR(job); } @@ -150,22 +180,6 @@ qemuBlockJobStarted(qemuBlockJobDataPtr job) } -static void -qemuBlockJobTerminate(qemuBlockJobDataPtr job) -{ - qemuDomainDiskPrivatePtr diskPriv; - - if (job->disk) { - diskPriv =3D QEMU_DOMAIN_DISK_PRIVATE(job->disk); - - if (job =3D=3D diskPriv->blockjob) { - virObjectUnref(diskPriv->blockjob); - diskPriv->blockjob =3D NULL; - } - } -} - - /** * qemuBlockJobStartupFinalize: * @job: job being started @@ -181,7 +195,7 @@ qemuBlockJobStartupFinalize(qemuBlockJobDataPtr job) return; if (job->state =3D=3D QEMU_BLOCKJOB_STATE_NEW) - qemuBlockJobTerminate(job); + qemuBlockJobUnregister(job); virObjectUnref(job); } @@ -300,7 +314,7 @@ qemuBlockJobEventProcessLegacyCompleted(virQEMUDriverPt= r driver, virStorageSourceBackingStoreClear(disk->src); ignore_value(qemuDomainDetermineDiskChain(driver, vm, disk, NULL, true= )); ignore_value(qemuBlockNodeNamesDetect(driver, vm, asyncJob)); - qemuBlockJobTerminate(job); + qemuBlockJobUnregister(job); } @@ -355,7 +369,7 @@ qemuBlockJobEventProcessLegacy(virQEMUDriverPtr driver, } disk->mirrorState =3D VIR_DOMAIN_DISK_MIRROR_STATE_NONE; disk->mirrorJob =3D VIR_DOMAIN_BLOCK_JOB_TYPE_UNKNOWN; - qemuBlockJobTerminate(job); + qemuBlockJobUnregister(job); break; case VIR_DOMAIN_BLOCK_JOB_LAST: --=20 2.21.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list