From nobody Mon Sep 8 17:08:18 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1756454814; cv=none; d=zohomail.com; s=zohoarc; b=HDHnsl5kJlZ9978cbxu+zHh3ktYmr0miBW/XiZy8fJianYBS/iZ0e/s37G+8RbgBEBeT8fhuCya6Q4cqYQTdG8MRh4k4GGjIn8J6HBi6mLNqFm20am2zCZ8f0ZJS4OMWwVJ6LhfCFRHnVpdxEz/pvu356V79xZFOTDRdA3YNFGo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1756454814; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:References:Subject:Subject:To:To:Message-Id; bh=U/74ASfoROQcfqvXSrZrsKV+OOs2EZaHNsgNdvXJNnY=; b=lvghLWDc6SnaVs2JkRnvcseH9Ht/l/KqX6ysPzfahMcpgkYQsP8rkJxx6Wwl12BKkF2FqhWR0YaLsvHHv73PZ8q0k1JbCKVWbAKUibBqaDJ8ogGPNP0pa9sXRrYdS2s7J8frGpt4L0ZwNWNJeferH4ZsfqIL2oXGD0+nYTNEeJg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1756454814733292.24312100567874; Fri, 29 Aug 2025 01:06:54 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id B1588440B1; Fri, 29 Aug 2025 04:06:52 -0400 (EDT) Received: from [172.19.199.3] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 09AF04426B; Fri, 29 Aug 2025 04:03:29 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 675A844073; Fri, 29 Aug 2025 04:03:04 -0400 (EDT) Received: from relay.virtuozzo.com (relay.virtuozzo.com [130.117.225.111]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 171E644088 for ; Fri, 29 Aug 2025 04:02:59 -0400 (EDT) Received: from [130.117.225.5] (helo=dev012.ch-qa.vzint.dev) by relay.virtuozzo.com with esmtp (Exim 4.96) (envelope-from ) id 1urtZv-0064Cb-0l; Fri, 29 Aug 2025 10:02:55 +0200 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-1.5 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_DNSWL_LOW, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=virtuozzo.com; s=relay; h=MIME-Version:Message-ID:Date:Subject:From: Content-Type; bh=U/74ASfoROQcfqvXSrZrsKV+OOs2EZaHNsgNdvXJNnY=; b=Q95agiOFtywY UjJ303wY2e8dBQVqLZwIf5kzIQylfIe/eQhjfTrxnbfIaJEdgpXQb79hdXE2lRoPp/Oc5mt8oGHn8 kUHrQPvygSnCJyzZ4Yw7j1tLYvY5Nz65TzW0OcYYRwAYne0F5YSnVKt0QtyiT66Ufn6279JGpCf35 gZv6EI6+xeSsbrr1LB/FrXoStUvPgDw+DmEbYlP24EWMtyfdIUc4D7T2vzvSVZ3noPgoXrbHbB4kx q4CMIv5a+71uMVH7LOGamSCLbGQy+/hEGBW/YaIMOolF9hSF+BpUfH8UIFMGtfg/IQGkLkCO/kM2H lTxfS+jZuVPoXIkx3qcJbQ==; To: devel@lists.libvirt.org Subject: [PATCH 2/2] qemu: implement driver support for domainBlockRebase2 API Date: Fri, 29 Aug 2025 10:55:30 +0300 Message-ID: <20250829080240.229601-3-nikolai.barybin@virtuozzo.com> X-Mailer: git-send-email 2.43.5 In-Reply-To: <20250829080240.229601-1-nikolai.barybin@virtuozzo.com> References: <20250829080240.229601-1-nikolai.barybin@virtuozzo.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Message-ID-Hash: P2A5JCNOLFOQGS3LB3GT4MO3U65ND3SD X-Message-ID-Hash: P2A5JCNOLFOQGS3LB3GT4MO3U65ND3SD X-MailFrom: nikolai.barybin@virtuozzo.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: den@openvz.org X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Nikolai Barybin via Devel Reply-To: Nikolai Barybin X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1756454816293116601 Content-Type: text/plain; charset="utf-8" Parse params list and pass arguments to underlying call to qemuDomainBlockPullCommon. Now bandwidth unit of messurement is passed as param and passed further with a use of VIR_DOMAIN_BLOCK_PULL_BANDWIDTH_BYTES flag. virDomainBlockRebase2 doesn't use equavivalent external flag. Signed-off-by: Nikolai Barybin --- src/qemu/qemu_driver.c | 48 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index ac72ea5cb0..b5ca195bfe 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -14634,6 +14634,53 @@ qemuDomainBlockRebase(virDomainPtr dom, return ret; } =20 +static int +qemuDomainBlockRebase2(virDomainPtr dom, + const char *path, + virTypedParameterPtr params, + int nparams, + unsigned int flags) +{ + virDomainObj *vm; + size_t i =3D 0; + unsigned long long bandwidth =3D 0; + const char *base =3D NULL; + + virCheckFlags(VIR_DOMAIN_BLOCK_REBASE_2_RELATIVE, -1); + + if (virTypedParamsValidate(params, nparams, + VIR_DOMAIN_BLOCK_REBASE_PARAM_BASE, + VIR_TYPED_PARAM_STRING, + VIR_DOMAIN_BLOCK_REBASE_PARAM_BANDWIDTH_MIB, + VIR_TYPED_PARAM_ULLONG, + VIR_DOMAIN_BLOCK_REBASE_PARAM_BANDWIDTH_BYT= ES, + VIR_TYPED_PARAM_ULLONG, + NULL) < 0) + return -1; + + if (!(vm =3D qemuDomainObjFromDomain(dom))) + return -1; + + if (virDomainBlockRebase2EnsureACL(dom->conn, vm->def) < 0) + return -1; + + for (i =3D 0; i < nparams; i++) { + virTypedParameterPtr param =3D ¶ms[i]; + + if (STREQ(param->field, VIR_DOMAIN_BLOCK_REBASE_PARAM_BANDWIDTH_MI= B)) { + bandwidth =3D param->value.ul; + } else if (STREQ(param->field, VIR_DOMAIN_BLOCK_REBASE_PARAM_BANDW= IDTH_BYTES)) { + bandwidth =3D param->value.ul; + flags |=3D VIR_DOMAIN_BLOCK_PULL_BANDWIDTH_BYTES; + } else if (STREQ(param->field, VIR_DOMAIN_BLOCK_REBASE_PARAM_BASE)= ) { + base =3D param->value.s; + } + } + + return qemuDomainBlockPullCommon(vm, path, base, bandwidth, flags); +} + + =20 static int qemuDomainBlockCopy(virDomainPtr dom, @@ -20579,6 +20626,7 @@ static virHypervisorDriver qemuHypervisorDriver =3D= { .domainBlockJobSetSpeed =3D qemuDomainBlockJobSetSpeed, /* 0.9.4 */ .domainBlockPull =3D qemuDomainBlockPull, /* 0.9.4 */ .domainBlockRebase =3D qemuDomainBlockRebase, /* 0.9.10 */ + .domainBlockRebase2 =3D qemuDomainBlockRebase2, /* 11.8.0 */ .domainBlockCopy =3D qemuDomainBlockCopy, /* 1.2.9 */ .domainBlockCommit =3D qemuDomainBlockCommit, /* 1.0.0 */ .connectIsAlive =3D qemuConnectIsAlive, /* 0.9.8 */ --=20 2.43.5