From nobody Mon Feb 9 04:03:19 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 Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1552924574984220.21038475906084; Mon, 18 Mar 2019 08:56:14 -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 4E0FA30832CF; Mon, 18 Mar 2019 15:56:13 +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 2567C5D705; Mon, 18 Mar 2019 15:56:13 +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 D2298181A279; Mon, 18 Mar 2019 15:56:12 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id x2IFtgvB022737 for ; Mon, 18 Mar 2019 11:55:42 -0400 Received: by smtp.corp.redhat.com (Postfix) id 43E4F1001DC8; Mon, 18 Mar 2019 15:55:42 +0000 (UTC) Received: from angien.brq.redhat.com (unknown [10.43.2.229]) by smtp.corp.redhat.com (Postfix) with ESMTP id C0DBF1001E82 for ; Mon, 18 Mar 2019 15:55:41 +0000 (UTC) From: Peter Krempa To: libvir-list@redhat.com Date: Mon, 18 Mar 2019 16:55:08 +0100 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 on 10.5.11.22 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 19/34] conf: Fold private data parsing into virDomainStorageSourceParse 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.44]); Mon, 18 Mar 2019 15:56:13 +0000 (UTC) Content-Type: text/plain; charset="utf-8" Storage source private data can be parsed along with other components of private data rather than a separate function which is called from multiple places. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/conf/domain_conf.c | 42 ++++++++++++------------------------------ src/conf/domain_conf.h | 3 ++- src/qemu/qemu_domain.c | 2 +- 3 files changed, 15 insertions(+), 32 deletions(-) diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index d74ac2f1fb..bf3ad45397 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -9020,31 +9020,6 @@ virDomainDiskSourceNetworkParse(xmlNodePtr node, } -static int -virDomainDiskSourcePrivateDataParse(xmlNodePtr node, - xmlXPathContextPtr ctxt, - virStorageSourcePtr src, - unsigned int flags, - virDomainXMLOptionPtr xmlopt) -{ - VIR_XPATH_NODE_AUTORESTORE(ctxt); - - if (!(flags & VIR_DOMAIN_DEF_PARSE_STATUS) || - !xmlopt || !xmlopt->privateData.storageParse) - return 0; - - ctxt->node =3D node; - - if (!(ctxt->node =3D virXPathNode("./privateData", ctxt))) - return 0; - - if (xmlopt->privateData.storageParse(ctxt, src) < 0) - return -1; - - return 0; -} - - static int virDomainDiskSourcePRParse(xmlNodePtr node, xmlXPathContextPtr ctxt, @@ -9068,7 +9043,8 @@ int virDomainStorageSourceParse(xmlNodePtr node, xmlXPathContextPtr ctxt, virStorageSourcePtr src, - unsigned int flags) + unsigned int flags, + virDomainXMLOptionPtr xmlopt) { VIR_XPATH_NODE_AUTORESTORE(ctxt); xmlNodePtr tmp; @@ -9122,6 +9098,15 @@ virDomainStorageSourceParse(xmlNodePtr node, if (src->path && !*src->path) VIR_FREE(src->path); + if ((flags & VIR_DOMAIN_DEF_PARSE_STATUS) && + xmlopt && xmlopt->privateData.storageParse && + (tmp =3D virXPathNode("./privateData", ctxt))) { + ctxt->node =3D tmp; + + if (xmlopt->privateData.storageParse(ctxt, src) < 0) + return -1; + } + return 0; } @@ -9133,10 +9118,7 @@ virDomainDiskSourceParse(xmlNodePtr node, unsigned int flags, virDomainXMLOptionPtr xmlopt) { - if (virDomainStorageSourceParse(node, ctxt, src, flags) < 0) - return -1; - - if (virDomainDiskSourcePrivateDataParse(node, ctxt, src, flags, xmlopt= ) < 0) + if (virDomainStorageSourceParse(node, ctxt, src, flags, xmlopt) < 0) return -1; return 0; diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h index 0bdd6c0f55..0b6d432871 100644 --- a/src/conf/domain_conf.h +++ b/src/conf/domain_conf.h @@ -3472,7 +3472,8 @@ virDomainStorageSourceFormatFull(virBufferPtr buf, int virDomainStorageSourceParse(xmlNodePtr node, xmlXPathContextPtr ctxt, virStorageSourcePtr src, - unsigned int flags) + unsigned int flags, + virDomainXMLOptionPtr xmlopt) ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_NONNULL(3); int virDomainDefGetVcpuPinInfoHelper(virDomainDefPtr def, diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index ea70979f8b..0a0a464dd2 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -2726,7 +2726,7 @@ qemuDomainObjPrivateXMLParseJobNBDSource(xmlNodePtr n= ode, } if (virDomainStorageSourceParse(ctxt->node, ctxt, migrSource, - VIR_DOMAIN_DEF_PARSE_STATUS) < 0) + VIR_DOMAIN_DEF_PARSE_STATUS, NULL) < 0) goto cleanup; if ((ctxt->node =3D virXPathNode("./privateData", ctxt)) && --=20 2.20.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list