From nobody Wed May 14 20:16:40 2025 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 Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1527700032785563.8557731851537; Wed, 30 May 2018 10:07:12 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id E9E0130C7459; Wed, 30 May 2018 17:07:10 +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 96FB8100164A; Wed, 30 May 2018 17:07:10 +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 834081800FD5; Wed, 30 May 2018 17:07:09 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w4UH6sXI007316 for ; Wed, 30 May 2018 13:06:54 -0400 Received: by smtp.corp.redhat.com (Postfix) id 1B8832026DEF; Wed, 30 May 2018 17:06:54 +0000 (UTC) Received: from angien.brq.redhat.com (unknown [10.43.2.136]) by smtp.corp.redhat.com (Postfix) with ESMTP id B54942026609 for ; Wed, 30 May 2018 17:06:53 +0000 (UTC) From: Peter Krempa To: libvir-list@redhat.com Date: Wed, 30 May 2018 19:06:30 +0200 Message-Id: In-Reply-To: References: In-Reply-To: References: X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 06/13] qemu: hotplug: Refactor PR props formatting to use qemuMonitorCreateObjectProps 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.84 on 10.5.11.22 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.46]); Wed, 30 May 2018 17:07:11 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Peter Krempa Reviewed-by: J=EF=BF=BDn Tomko --- src/qemu/qemu_command.c | 30 ++++++++++-------------------- src/qemu/qemu_hotplug.c | 19 +++++++------------ 2 files changed, 17 insertions(+), 32 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 5b0e21a425..00fb1a3b32 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -9730,18 +9730,11 @@ int qemuBuildPRManagerInfoProps(const virDomainDiskDef *disk, virJSONValuePtr *propsret) { - int ret =3D -1; - - *propsret =3D NULL; - - if (virJSONValueObjectCreate(propsret, - "s:path", disk->src->pr->path, - NULL) < 0) - goto cleanup; - - ret =3D 0; - cleanup: - return ret; + return qemuMonitorCreateObjectProps(propsret, + "pr-manager-helper", + disk->src->pr->mgralias, + "s:path", disk->src->pr->path, + NULL); } @@ -9749,10 +9742,10 @@ static int qemuBuildMasterPRCommandLine(virCommandPtr cmd, const virDomainDef *def) { + virBuffer buf =3D VIR_BUFFER_INITIALIZER; size_t i; bool managedAdded =3D false; virJSONValuePtr props =3D NULL; - char *tmp =3D NULL; int ret =3D -1; for (i =3D 0; i < def->ndisks; i++) { @@ -9771,19 +9764,16 @@ qemuBuildMasterPRCommandLine(virCommandPtr cmd, if (qemuBuildPRManagerInfoProps(disk, &props) < 0) goto cleanup; - if (!(tmp =3D virQEMUBuildObjectCommandlineFromJSONType("pr-manage= r-helper", - disk->src->p= r->mgralias, - props))) + if (virQEMUBuildObjectCommandlineFromJSON(&buf, props) < 0) goto cleanup; - virJSONValueFree(props); - props =3D NULL; - virCommandAddArgList(cmd, "-object", tmp, NULL); - VIR_FREE(tmp); + virCommandAddArg(cmd, "-object"); + virCommandAddArgBuffer(cmd, &buf); } ret =3D 0; cleanup: + virBufferFreeAndReset(&buf); virJSONValueFree(props); return ret; } diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 10735622d1..5892c18e5e 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -421,10 +421,10 @@ qemuDomainAttachDiskGeneric(virQEMUDriverPtr driver, char *devstr =3D NULL; char *drivestr =3D NULL; char *drivealias =3D NULL; + char *prmgrAlias =3D NULL; bool driveAdded =3D false; bool secobjAdded =3D false; bool encobjAdded =3D false; - bool prmgrAdded =3D false; bool prdStarted =3D false; virQEMUDriverConfigPtr cfg =3D virQEMUDriverGetConfig(driver); virJSONValuePtr secobjProps =3D NULL; @@ -504,15 +504,9 @@ qemuDomainAttachDiskGeneric(virQEMUDriverPtr driver, encobjAdded =3D true; } - if (prmgrProps) { - rv =3D qemuMonitorAddObjectType(priv->mon, "pr-manager-helper", - disk->src->pr->mgralias, - prmgrProps); - prmgrProps =3D NULL; /* qemuMonitorAddObjectType consumes */ - if (rv < 0) - goto exit_monitor; - prmgrAdded =3D true; - } + if (prmgrProps && + qemuMonitorAddObject(priv->mon, &prmgrProps, &prmgrAlias) < 0) + goto exit_monitor; if (qemuMonitorAddDrive(priv->mon, drivestr) < 0) goto exit_monitor; @@ -536,6 +530,7 @@ qemuDomainAttachDiskGeneric(virQEMUDriverPtr driver, virJSONValueFree(encobjProps); virJSONValueFree(secobjProps); qemuDomainSecretDiskDestroy(disk); + VIR_FREE(prmgrAlias); VIR_FREE(drivealias); VIR_FREE(drivestr); VIR_FREE(devstr); @@ -552,8 +547,8 @@ qemuDomainAttachDiskGeneric(virQEMUDriverPtr driver, ignore_value(qemuMonitorDelObject(priv->mon, secinfo->s.aes.alias)= ); if (encobjAdded) ignore_value(qemuMonitorDelObject(priv->mon, encinfo->s.aes.alias)= ); - if (prmgrAdded) - ignore_value(qemuMonitorDelObject(priv->mon, disk->src->pr->mgrali= as)); + if (prmgrAlias) + ignore_value(qemuMonitorDelObject(priv->mon, prmgrAlias)); if (qemuDomainObjExitMonitor(driver, vm) < 0) ret =3D -2; virErrorRestore(&orig_err); --=20 2.16.2 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list