From nobody Thu May 15 13:54:19 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 Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1507836105824954.6292188319253; Thu, 12 Oct 2017 12:21:45 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id A25802D1EE0; Thu, 12 Oct 2017 19:21:44 +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 7D7D66017B; Thu, 12 Oct 2017 19:21:44 +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 4941E3FACF; Thu, 12 Oct 2017 19:21:44 +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 v9CJDlU0002296 for ; Thu, 12 Oct 2017 15:13:47 -0400 Received: by smtp.corp.redhat.com (Postfix) id 42B7E60F84; Thu, 12 Oct 2017 19:13:47 +0000 (UTC) Received: from angien.brq.redhat.com (unknown [10.43.2.136]) by smtp.corp.redhat.com (Postfix) with ESMTP id 943676957D; Thu, 12 Oct 2017 19:13:46 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com A25802D1EE0 Authentication-Results: ext-mx05.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx05.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=libvir-list-bounces@redhat.com From: Peter Krempa To: libvir-list@redhat.com Date: Thu, 12 Oct 2017 21:13:30 +0200 Message-Id: <9e34e7e71f8a74cf065dd1c011e413f4491ed9d8.1507835507.git.pkrempa@redhat.com> In-Reply-To: References: In-Reply-To: References: X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-loop: libvir-list@redhat.com Cc: Peter Krempa Subject: [libvirt] [PATCH 1/3] qemu: command: Separate wrapping of disk backend props to 'file' object 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.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.29]); Thu, 12 Oct 2017 19:21:45 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" The file object is needed when formatting the command line, but it makes nesting of the objects less easy for use with blockdev. Separate the wrapping into the 'file' object into a helper used specifically for disk sources in the old code path. --- src/qemu/qemu_block.c | 14 +++----------- src/qemu/qemu_command.c | 27 ++++++++++++++++++++++++++- 2 files changed, 29 insertions(+), 12 deletions(-) diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c index 8d232de3e..4c0f675ca 100644 --- a/src/qemu/qemu_block.c +++ b/src/qemu/qemu_block.c @@ -572,7 +572,6 @@ qemuBlockStorageSourceGetBackendProps(virStorageSourceP= tr src) { int actualType =3D virStorageSourceGetActualType(src); virJSONValuePtr fileprops =3D NULL; - virJSONValuePtr ret =3D NULL; switch ((virStorageType) actualType) { case VIR_STORAGE_TYPE_BLOCK: @@ -587,12 +586,12 @@ qemuBlockStorageSourceGetBackendProps(virStorageSourc= ePtr src) switch ((virStorageNetProtocol) src->protocol) { case VIR_STORAGE_NET_PROTOCOL_GLUSTER: if (!(fileprops =3D qemuBlockStorageSourceGetGlusterProps(src)= )) - goto cleanup; + return NULL; break; case VIR_STORAGE_NET_PROTOCOL_VXHS: if (!(fileprops =3D qemuBlockStorageSourceGetVxHSProps(src))) - goto cleanup; + return NULL; break; case VIR_STORAGE_NET_PROTOCOL_NBD: @@ -612,12 +611,5 @@ qemuBlockStorageSourceGetBackendProps(virStorageSource= Ptr src) break; } - if (virJSONValueObjectCreate(&ret, "a:file", fileprops, NULL) < 0) - goto cleanup; - - fileprops =3D NULL; - - cleanup: - virJSONValueFree(fileprops); - return ret; + return fileprops; } diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 9c8bde49a..f6313c007 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -1370,6 +1370,31 @@ qemuDiskSourceNeedsProps(virStorageSourcePtr src) } +/** + * qemuDiskSourceGetProps: + * @src: disk source struct + * + * Returns the disk source struct wrapped so that it can be used as disk s= ource + * directly by converting it from json. + */ +static virJSONValuePtr +qemuDiskSourceGetProps(virStorageSourcePtr src) +{ + virJSONValuePtr props; + virJSONValuePtr ret; + + if (!(props =3D qemuBlockStorageSourceGetBackendProps(src))) + return NULL; + + if (virJSONValueObjectCreate(&ret, "a:file", props, NULL) < 0) { + virJSONValueFree(props); + return NULL; + } + + return ret; +} + + static int qemuBuildDriveSourceStr(virDomainDiskDefPtr disk, virQEMUDriverConfigPtr cfg, @@ -1385,7 +1410,7 @@ qemuBuildDriveSourceStr(virDomainDiskDefPtr disk, int ret =3D -1; if (qemuDiskSourceNeedsProps(disk->src) && - !(srcprops =3D qemuBlockStorageSourceGetBackendProps(disk->src))) + !(srcprops =3D qemuDiskSourceGetProps(disk->src))) goto cleanup; if (!srcprops && --=20 2.14.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list