From nobody Sun May 5 11:11:07 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) client-ip=63.128.21.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.124 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=1614259668; cv=none; d=zohomail.com; s=zohoarc; b=fdC9TwXjwee9oTZ+7pTU69VEg7dxzj+2Ao1NFABVjf5ZmS9OHdwDYXSvXTXqWwkCDD+RFFFL80XYNY3er9VVJKFbs929i5itd4+v5AJtpv8BmvVEcol7gauC24dSw30bG1TPD0PjWVwGIJghud7/yDKGzrZe/BcsBSR0yegSE+0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1614259668; h=Content-Type:Content-Transfer-Encoding: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; bh=xl+48W5kbE+l309KOYYurP/sJkBnu5jun3Cs2XijyMM=; b=Pu5qwpO4dhB9TLYv634PjEPDAWJcNXenTXNQo7/rr5x06K8OT33XAaL432HAIuaG48w4mb69z3PgVdOM1C0c4PgzizMIED+OvqcWVBzFgDNS7XCuuhRsXR5ekJqHaDRhWeI7AuKSGTtCW/GTurobwMStNxfqt+qiy1pvotiHBI8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [63.128.21.124]) by mx.zohomail.com with SMTPS id 1614259668729265.1420839826144; Thu, 25 Feb 2021 05:27:48 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-416-wRkQaVo_MAOdcMl1yfT6-Q-1; Thu, 25 Feb 2021 08:27:45 -0500 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 14858804023; Thu, 25 Feb 2021 13:27:40 +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 E74C660C4D; Thu, 25 Feb 2021 13:27:39 +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 B411858075; Thu, 25 Feb 2021 13:27:39 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 11PDQN1L012172 for ; Thu, 25 Feb 2021 08:26:23 -0500 Received: by smtp.corp.redhat.com (Postfix) id 49E845D9DC; Thu, 25 Feb 2021 13:26:23 +0000 (UTC) Received: from speedmetal.lan (unknown [10.40.208.53]) by smtp.corp.redhat.com (Postfix) with ESMTP id 961BF5D9D7 for ; Thu, 25 Feb 2021 13:26:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1614259667; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=xl+48W5kbE+l309KOYYurP/sJkBnu5jun3Cs2XijyMM=; b=WBWQwwXcvtEjn+iiVS9xc2rkVNz1CNPC6o0uvKPOM+TdSbUaQA1VUnz5bAGurzYwW+KtdX V5bpNyHP7QK1B1KUWFQwIfDQfonmb8G4EwfFv441PbNfkFZYU87ePWzaMy/8Jr8s1QATVx t79X0uwZ0NETMMbUiI0aKGfgbz9FwLg= X-MC-Unique: wRkQaVo_MAOdcMl1yfT6-Q-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 1/4] storageBackendProbeTarget: Check return value of virStorageSourceNewFromBacking Date: Thu, 25 Feb 2021 14:26:14 +0100 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com 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: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" Commit bc3a78f61a2aaac3 errorneously removed the return value check from virStorageSourceNewFromBacking. In cases when we e.g. can't parse the backing store string this leads to a crash: #0 virStorageSourceGetActualType (def=3D0x0) at ../../../libvirt/src/conf= /storage_source_conf.c:1014 #1 0x00007ffff7cee4f9 in virStorageSourceIsLocalStorage (src=3D) at ../../../libvirt/src/conf/storage_source_conf.c:1026 #2 0x00007ffff455c97c in storageBackendProbeTarget (encryption=3D0x7fff9c= 122ce8, target=3D0x7fff9c122c68) at ../../../libvirt/src/storage/storage_ut= il.c:3443 #3 virStorageBackendRefreshVolTargetUpdate (vol=3D0x7fff9c122c30) at ../.= ./../libvirt/src/storage/storage_util.c:3519 #4 0x00007ffff455cdc0 in virStorageBackendRefreshLocal (pool=3D0x7fff9c01= 0ea0) at ../../../libvirt/src/storage/storage_util.c:3593 #5 0x00007ffff454f0a1 in storagePoolRefreshImpl (backend=3Dbackend@entry=3D0x7ffff4711180 ,= obj=3Dobj@entry=3D0x7fff9c010ea0, stateFile=3DstateFile@entry=3D0x7fff9c11= 1a90 "/var/run/libvirt/storage/tmp.xml") at ../../../libvirt/src/storage/st= orage_driver.c:103 #6 0x00007ffff4550ea5 in storagePoolUpdateStateCallback (obj=3D0x7fff9c01= 0ea0, opaque=3D) at ../../../libvirt/src/storage/storage_dri= ver.c:165 #7 0x00007ffff7cefef4 in virStoragePoolObjListForEachCb (payload=3D, name=3D, opaque=3D0x7fffc8a489c0) at ../../../libvirt/src/conf/virstorageobj.c:435 #8 0x00007ffff7c03195 in virHashForEachSafe (table=3D, iter=3Diter@entry=3D0x7ffff7cefec0 , opaque=3Dopaque@entry=3D0x7fffc8a489c0) at ../../../libvirt/src/util/virhash.c:414 #9 0x00007ffff7cf0520 in virStoragePoolObjListForEach (pools=3D, iter=3Diter@entry=3D0x7ffff4550e10 , opaque=3Dopaque@entry=3D0x0) at ../../../libvirt/src/conf/virstorageobj.c:468 #10 0x00007ffff454f43a in storagePoolUpdateAllState () at ../../../libvirt= /src/storage/storage_driver.c:184 #11 storageStateInitialize (privileged=3D, root=3D, callback=3D, opaque=3D) at ../../../libvirt/src/storage/storage_driver.c:315 #12 0x00007ffff7e10c04 in virStateInitialize (opaque=3D0x555555621820, callback=3D0x55555557b1d0 , root=3D0x0, mandatory=3D, privileged=3Dtrue) at ../../../libvirt/src/libvirt.c:656 #13 virStateInitialize (privileged=3D, mandatory=3Dmandatory@entry=3Dfalse, roo= t=3Droot@entry=3D0x0, callback=3Dcallback@entry=3D0x55555557b1d0 , opaque=3Dopaque@entry=3D0x555555621820) at ../../../libvirt/= src/libvirt.c:638 #14 0x000055555557b230 in daemonRunStateInit (opaque=3D0x555555621820) at = ../../../libvirt/src/remote/remote_daemon.c:605 #15 0x00007ffff7c46bb5 in virThreadHelper (data=3D) at ../.= ./../libvirt/src/util/virthread.c:233 #16 0x00007ffff6e453f9 in start_thread () at /lib64/libpthread.so.0 #17 0x00007ffff766fb53 in clone () at /lib64/libc.so An invalid image can be easily created by: $ qemu-img create -f qcow2 -F qcow2 -b 'json:{' -u img.qcow2 10M Signed-off-by: Peter Krempa Reviewed-by: Michal Privoznik --- src/storage/storage_util.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/storage/storage_util.c b/src/storage/storage_util.c index b5adb05826..e71715f908 100644 --- a/src/storage/storage_util.c +++ b/src/storage/storage_util.c @@ -3435,7 +3435,8 @@ storageBackendProbeTarget(virStorageSourcePtr target, return -1; if (meta->backingStoreRaw) { - virStorageSourceNewFromBacking(meta, &target->backingStore); + if (virStorageSourceNewFromBacking(meta, &target->backingStore) < = 0) + return -1; /* XXX: Remote storage doesn't play nicely with volumes backed by * remote storage. To avoid trouble, just fake the backing store i= s RAW --=20 2.29.2 From nobody Sun May 5 11:11:07 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) client-ip=63.128.21.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.124 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=1614259671; cv=none; d=zohomail.com; s=zohoarc; b=S2/QiM5JwBnFvhGST2Fee7UMwkdNSGnmBrarpOeDcYVXhtNBmcq8VeuHmubJR5BNgBOpuUdUkuin76WTYbOaJFKkTAZI61hu/E81Me2IuRm++V68Guj/Enawnll5DrpNUVdsRTcNI5OIahSUzdlEemeAJQKJHSK5ASedJqRPc/A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1614259671; h=Content-Type:Content-Transfer-Encoding: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; bh=S40XFbKADEGT3fALipxiQeZ+hm3HAPY9Gp9XVKb+akI=; b=aEiYnSKV2eciXXe0bqgCu5gczIIt4BFJfguNjN8ECPstpPXsqwjQJY5qevOD42p3Fy7zawsziy+9F6pLjbeIAJzphntz/sU3wVOXsZiivdCWu9n+44m8fd3n4SVyXAJk9EJgtjapNe9jKuzQPEuNVOUCQ5lPabRhub5+Ed52Wvw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [63.128.21.124]) by mx.zohomail.com with SMTPS id 1614259671954538.2018731997159; Thu, 25 Feb 2021 05:27:51 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-600-SSyhCpD-Na-hkRGHdjVmEw-1; Thu, 25 Feb 2021 08:27:49 -0500 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 mimecast-mx01.redhat.com (Postfix) with ESMTPS id 83BF9801989; Thu, 25 Feb 2021 13:27:43 +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 5139F2CD5E; Thu, 25 Feb 2021 13:27:43 +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 0FC5218095CB; Thu, 25 Feb 2021 13:27:43 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 11PDQOCJ012182 for ; Thu, 25 Feb 2021 08:26:24 -0500 Received: by smtp.corp.redhat.com (Postfix) id 590D95D9DC; Thu, 25 Feb 2021 13:26:24 +0000 (UTC) Received: from speedmetal.lan (unknown [10.40.208.53]) by smtp.corp.redhat.com (Postfix) with ESMTP id B5CB75D9D7 for ; Thu, 25 Feb 2021 13:26:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1614259670; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=S40XFbKADEGT3fALipxiQeZ+hm3HAPY9Gp9XVKb+akI=; b=i8I1XzoUZbHyw4G9zZTjRCqSwG1/OIwRfOxMHp++k6yoilWX2rtkzrf2zvLztoS8zxuroy 1yMFbvtG0TcRozCvdOHm82OkmkKAW6i0Fkp78kDRbrUyPXigLkbzEKTeNREm11mIvbXx5f a21b2PMHAhTSPyBJfucVG4FBq7R+dpE= X-MC-Unique: SSyhCpD-Na-hkRGHdjVmEw-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 2/4] storageBackendProbeTarget: Don't fail if backing store can't be parsed Date: Thu, 25 Feb 2021 14:26:15 +0100 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com 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: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" When the backing store of the image can't be parsed virStorageSourceNewFromBacking returns -1. storageBackendProbeTarget then also fails which makes the pool refresh fail or even the storage pool becomes inactive after (re)start of libvirtd. In situations when we can't access the backing store via network we just report the backing store string, thus we can do the same thing for unparsable backing store to prevent the pool from going offline. Signed-off-by: Peter Krempa Reviewed-by: Michal Privoznik --- src/storage/storage_util.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/storage/storage_util.c b/src/storage/storage_util.c index e71715f908..db2c7a18bf 100644 --- a/src/storage/storage_util.c +++ b/src/storage/storage_util.c @@ -3435,13 +3435,11 @@ storageBackendProbeTarget(virStorageSourcePtr targe= t, return -1; if (meta->backingStoreRaw) { - if (virStorageSourceNewFromBacking(meta, &target->backingStore) < = 0) - return -1; - /* XXX: Remote storage doesn't play nicely with volumes backed by * remote storage. To avoid trouble, just fake the backing store i= s RAW * and put the string from the metadata as the path of the target.= */ - if (!virStorageSourceIsLocalStorage(target->backingStore)) { + if (virStorageSourceNewFromBacking(meta, &target->backingStore) < = 0 || + !virStorageSourceIsLocalStorage(target->backingStore)) { virObjectUnref(target->backingStore); target->backingStore =3D virStorageSourceNew(); --=20 2.29.2 From nobody Sun May 5 11:11:07 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) client-ip=63.128.21.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.124 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=1614259678; cv=none; d=zohomail.com; s=zohoarc; b=BbYrO+Evyp1neGvibwTx8EI6eEV7v36iOXqUvHaFe5ECxGrgvuIMba/0e3DMycThxQ5ff7eAY23fA8fVN+r1tzip6hahs5OorwG878obaRv6OvE3p1y4PoV8IoVtgeOgRDZfn/FJ1dqlwNuSoERM6qaXZxJugOg5ae8XmwtpF/8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1614259678; h=Content-Type:Content-Transfer-Encoding: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; bh=KsxHJbCv6a6gTHJ7xOOEa/JblUhk/HgOgygNIRiDm9I=; b=bEY5hmbkBkHW7hTiNeeCwdfjfACX1JS+7fScmkMPAWj74tucd1v6KfYmAWrqzb7dIGztbfCuKYrU6s0y6V7GE5ytJ1zT5cWaEPD7LAfTjbw5osRR3HDpA91A661941ZXMN4mvbLM8F5HzDN0D4MbC4pIFWwMR4tWer2eCJdYqag= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 63.128.21.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [63.128.21.124]) by mx.zohomail.com with SMTPS id 1614259678335638.5525006937862; Thu, 25 Feb 2021 05:27:58 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-482-IF70Ase4M1qS5NuYOGWBmw-1; Thu, 25 Feb 2021 08:27:54 -0500 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 8AA22107ACE6; Thu, 25 Feb 2021 13:27:47 +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 5AFAE60CEB; Thu, 25 Feb 2021 13:27:47 +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 226A858078; Thu, 25 Feb 2021 13:27:47 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 11PDQPS0012187 for ; Thu, 25 Feb 2021 08:26:25 -0500 Received: by smtp.corp.redhat.com (Postfix) id 693E55D9DC; Thu, 25 Feb 2021 13:26:25 +0000 (UTC) Received: from speedmetal.lan (unknown [10.40.208.53]) by smtp.corp.redhat.com (Postfix) with ESMTP id BD9D25D9D7 for ; Thu, 25 Feb 2021 13:26:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1614259677; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=KsxHJbCv6a6gTHJ7xOOEa/JblUhk/HgOgygNIRiDm9I=; b=H2XqUTrhhhrVUoyKbV4nfWp4q34Ef2brBEAHdV3sT2PY9x0i6ObQR3BbXDyr8Nt9FwnjMC Z/hehcO/zbh16GqO8wpk6rDSyjV27D88XaxqQqpugIhMeV6wxNN+LW5wfvNU1VA7dTUeLr fIfJnk/0qQuo3kcllN9oR7kXOYCvSmo= X-MC-Unique: IF70Ase4M1qS5NuYOGWBmw-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 3/4] virStorageVolDefFormat: Extract formatting of source extents Date: Thu, 25 Feb 2021 14:26:16 +0100 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com 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: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" Move the extent formatting code into virStorageVolDefFormatSourceExtents. Signed-off-by: Peter Krempa Reviewed-by: Michal Privoznik --- src/conf/storage_conf.c | 53 +++++++++++++++++++++++------------------ 1 file changed, 30 insertions(+), 23 deletions(-) diff --git a/src/conf/storage_conf.c b/src/conf/storage_conf.c index 0f515c7cbb..1bc27ff194 100644 --- a/src/conf/storage_conf.c +++ b/src/conf/storage_conf.c @@ -1643,6 +1643,34 @@ virStorageVolTargetDefFormat(virStorageVolOptionsPtr= options, } +static void +virStorageVolDefFormatSourceExtents(virBufferPtr buf, + virStorageVolDefPtr def) +{ + size_t i; + const char *thispath =3D NULL; + for (i =3D 0; i < def->source.nextent; i++) { + if (thispath =3D=3D NULL || + STRNEQ(thispath, def->source.extents[i].path)) { + if (thispath !=3D NULL) + virBufferAddLit(buf, "\n"); + + virBufferEscapeString(buf, "\n", + def->source.extents[i].path); + } + + virBufferAdjustIndent(buf, 2); + virBufferAsprintf(buf, "\n", + def->source.extents[i].start, + def->source.extents[i].end); + virBufferAdjustIndent(buf, -2); + thispath =3D def->source.extents[i].path; + } + if (thispath !=3D NULL) + virBufferAddLit(buf, "\n"); +} + + char * virStorageVolDefFormat(virStoragePoolDefPtr pool, virStorageVolDefPtr def) @@ -1663,29 +1691,8 @@ virStorageVolDefFormat(virStoragePoolDefPtr pool, virBufferAddLit(&buf, "\n"); virBufferAdjustIndent(&buf, 2); - if (def->source.nextent) { - size_t i; - const char *thispath =3D NULL; - for (i =3D 0; i < def->source.nextent; i++) { - if (thispath =3D=3D NULL || - STRNEQ(thispath, def->source.extents[i].path)) { - if (thispath !=3D NULL) - virBufferAddLit(&buf, "\n"); - - virBufferEscapeString(&buf, "\n", - def->source.extents[i].path); - } - - virBufferAdjustIndent(&buf, 2); - virBufferAsprintf(&buf, "= \n", - def->source.extents[i].start, - def->source.extents[i].end); - virBufferAdjustIndent(&buf, -2); - thispath =3D def->source.extents[i].path; - } - if (thispath !=3D NULL) - virBufferAddLit(&buf, "\n"); - } + if (def->source.nextent) + virStorageVolDefFormatSourceExtents(&buf, def); virBufferAdjustIndent(&buf, -2); virBufferAddLit(&buf, "\n"); --=20 2.29.2 From nobody Sun May 5 11:11:07 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 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=1614259649; cv=none; d=zohomail.com; s=zohoarc; b=D960DirsaV1OS8yvh8XDck/ObVbY1Tvk5c7arxAhadDjJExbn/NlGNkp8sDL3EW1znp5CUroUYhdHqjTAe09FI1aJ+fgJ5d6DteCHQmeiR/J10uXJF+B2qCxNYbQzDtFIpfPpM6t7PeBkoetXr2eKIAD6GL03ORakrvFoxTQf/4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1614259649; h=Content-Type:Content-Transfer-Encoding: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; bh=Kq7vSMVQL2a++nSmOJI5qN8+1dLyFTKRdX0YfWcPMbo=; b=Mz4m8T+n/XABh1GDngrXn4XfsMyel3IUrTNt4beyWi5kTILLyITkxxcDfZo1Y2KzvHDjKzjyAJAn6xc4xC9JP4gNDLGd6v9uJfHmFHsbYXOb9pthNASPXSDAem1ht5t33a8xQ0ulfRM/gvOZrdUxIlUxyQYIyzclDzRRZ7Q1hVk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1614259649081326.2226698833267; Thu, 25 Feb 2021 05:27:29 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-64-6iCgliulMyynAFHtCFumHw-1; Thu, 25 Feb 2021 08:27:25 -0500 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id A4A27193578B; Thu, 25 Feb 2021 13:27:19 +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 3401B60C5A; Thu, 25 Feb 2021 13:27:19 +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 EF30D58074; Thu, 25 Feb 2021 13:27:18 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 11PDQSi2012208 for ; Thu, 25 Feb 2021 08:26:28 -0500 Received: by smtp.corp.redhat.com (Postfix) id E87EA5D9D7; Thu, 25 Feb 2021 13:26:28 +0000 (UTC) Received: from speedmetal.lan (unknown [10.40.208.53]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4F75D5D9DC for ; Thu, 25 Feb 2021 13:26:25 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1614259648; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=Kq7vSMVQL2a++nSmOJI5qN8+1dLyFTKRdX0YfWcPMbo=; b=cnMvVEGF8nttGwDQ6dzrydURsqSPHnhF/WusvPGYW+VhYtUzYTwDiI6fdepO2f004e6oXs fjOQiOWBAjD7sO3dxxmk+dYnt9X5fHIZemKf6EvE/pANGZa+Wpqba029hyJhG5LdgsvknA tAkapH/gE6+FG1zHZtyNCbV0uDxktK0= X-MC-Unique: 6iCgliulMyynAFHtCFumHw-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 4/4] virStorageVolDefFormat: Don't format empty Date: Thu, 25 Feb 2021 14:26:17 +0100 Message-Id: <5ace8e6d27cdf30ede586f640dbfc3c6e8e980b5.1614259540.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 X-loop: libvir-list@redhat.com 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: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" If there are no source extents the volume XML has an empty element. Remove it if there's nothing in it by using virXMLFormatElement. Signed-off-by: Peter Krempa Reviewed-by: Michal Privoznik --- src/conf/storage_conf.c | 10 +++++----- tests/storagevolxml2xmlout/vol-file-backing.xml | 2 -- tests/storagevolxml2xmlout/vol-file-iso.xml | 2 -- tests/storagevolxml2xmlout/vol-file-naming.xml | 2 -- tests/storagevolxml2xmlout/vol-file.xml | 2 -- tests/storagevolxml2xmlout/vol-gluster-dir-neg-uid.xml | 2 -- tests/storagevolxml2xmlout/vol-gluster-dir.xml | 2 -- tests/storagevolxml2xmlout/vol-logical-backing.xml | 2 -- tests/storagevolxml2xmlout/vol-logical.xml | 2 -- tests/storagevolxml2xmlout/vol-luks-cipher.xml | 2 -- tests/storagevolxml2xmlout/vol-luks.xml | 2 -- tests/storagevolxml2xmlout/vol-partition.xml | 2 -- tests/storagevolxml2xmlout/vol-qcow2-0.10-lazy.xml | 2 -- tests/storagevolxml2xmlout/vol-qcow2-1.1.xml | 2 -- tests/storagevolxml2xmlout/vol-qcow2-encryption.xml | 2 -- tests/storagevolxml2xmlout/vol-qcow2-lazy.xml | 2 -- tests/storagevolxml2xmlout/vol-qcow2-luks.xml | 2 -- tests/storagevolxml2xmlout/vol-qcow2-nobacking.xml | 2 -- tests/storagevolxml2xmlout/vol-qcow2-nocapacity.xml | 2 -- tests/storagevolxml2xmlout/vol-qcow2.xml | 2 -- tests/storagevolxml2xmlout/vol-sheepdog.xml | 2 -- 21 files changed, 5 insertions(+), 45 deletions(-) diff --git a/src/conf/storage_conf.c b/src/conf/storage_conf.c index 1bc27ff194..c840bc4b4f 100644 --- a/src/conf/storage_conf.c +++ b/src/conf/storage_conf.c @@ -1677,6 +1677,7 @@ virStorageVolDefFormat(virStoragePoolDefPtr pool, { virStorageVolOptionsPtr options; g_auto(virBuffer) buf =3D VIR_BUFFER_INITIALIZER; + g_auto(virBuffer) sourceChildBuf =3D VIR_BUFFER_INITIALIZER; options =3D virStorageVolOptionsForPoolType(pool->type); if (options =3D=3D NULL) @@ -1688,14 +1689,13 @@ virStorageVolDefFormat(virStoragePoolDefPtr pool, virBufferEscapeString(&buf, "%s\n", def->name); virBufferEscapeString(&buf, "%s\n", def->key); - virBufferAddLit(&buf, "\n"); - virBufferAdjustIndent(&buf, 2); + + virBufferSetIndent(&sourceChildBuf, virBufferGetIndent(&buf) + 2); if (def->source.nextent) - virStorageVolDefFormatSourceExtents(&buf, def); + virStorageVolDefFormatSourceExtents(&sourceChildBuf, def); - virBufferAdjustIndent(&buf, -2); - virBufferAddLit(&buf, "\n"); + virXMLFormatElement(&buf, "source", NULL, &sourceChildBuf); virBufferAsprintf(&buf, "%llu\n", def->target.capacity); diff --git a/tests/storagevolxml2xmlout/vol-file-backing.xml b/tests/storag= evolxml2xmlout/vol-file-backing.xml index cd33bee523..e4180a8a00 100644 --- a/tests/storagevolxml2xmlout/vol-file-backing.xml +++ b/tests/storagevolxml2xmlout/vol-file-backing.xml @@ -1,8 +1,6 @@ sparse.img /var/lib/libvirt/images/sparse.img - - 10000000000 0 diff --git a/tests/storagevolxml2xmlout/vol-file-iso.xml b/tests/storagevol= xml2xmlout/vol-file-iso.xml index 9783124b34..955bafd453 100644 --- a/tests/storagevolxml2xmlout/vol-file-iso.xml +++ b/tests/storagevolxml2xmlout/vol-file-iso.xml @@ -1,7 +1,5 @@ test.iso - - 1048576 1048576 diff --git a/tests/storagevolxml2xmlout/vol-file-naming.xml b/tests/storage= volxml2xmlout/vol-file-naming.xml index e515502af1..d1b1c1d2ba 100644 --- a/tests/storagevolxml2xmlout/vol-file-naming.xml +++ b/tests/storagevolxml2xmlout/vol-file-naming.xml @@ -1,7 +1,5 @@ <sparse>.img - - 1099511627776 0 diff --git a/tests/storagevolxml2xmlout/vol-file.xml b/tests/storagevolxml2= xmlout/vol-file.xml index 2923188e65..884cf73797 100644 --- a/tests/storagevolxml2xmlout/vol-file.xml +++ b/tests/storagevolxml2xmlout/vol-file.xml @@ -1,7 +1,5 @@ sparse.img - - 1099511627776 0 diff --git a/tests/storagevolxml2xmlout/vol-gluster-dir-neg-uid.xml b/tests= /storagevolxml2xmlout/vol-gluster-dir-neg-uid.xml index 0af0be179d..8dd0f7472f 100644 --- a/tests/storagevolxml2xmlout/vol-gluster-dir-neg-uid.xml +++ b/tests/storagevolxml2xmlout/vol-gluster-dir-neg-uid.xml @@ -1,8 +1,6 @@ dir vol/dir - - 0 0 diff --git a/tests/storagevolxml2xmlout/vol-gluster-dir.xml b/tests/storage= volxml2xmlout/vol-gluster-dir.xml index d4222489ec..fa01f98938 100644 --- a/tests/storagevolxml2xmlout/vol-gluster-dir.xml +++ b/tests/storagevolxml2xmlout/vol-gluster-dir.xml @@ -1,8 +1,6 @@ dir vol/dir - - 0 0 diff --git a/tests/storagevolxml2xmlout/vol-logical-backing.xml b/tests/sto= ragevolxml2xmlout/vol-logical-backing.xml index 07fe27767d..7200f32f7f 100644 --- a/tests/storagevolxml2xmlout/vol-logical-backing.xml +++ b/tests/storagevolxml2xmlout/vol-logical-backing.xml @@ -1,8 +1,6 @@ Swap r4xkCv-MQhr-WKIT-R66x-Epn2-e8hG-1Z5gY0 - - 2080374784 2080374784 diff --git a/tests/storagevolxml2xmlout/vol-logical.xml b/tests/storagevolx= ml2xmlout/vol-logical.xml index 0df5cc0864..ddaf0e24f5 100644 --- a/tests/storagevolxml2xmlout/vol-logical.xml +++ b/tests/storagevolxml2xmlout/vol-logical.xml @@ -1,8 +1,6 @@ Swap r4xkCv-MQhr-WKIT-R66x-Epn2-e8hG-1Z5gY0 - - 2080374784 2080374784 diff --git a/tests/storagevolxml2xmlout/vol-luks-cipher.xml b/tests/storage= volxml2xmlout/vol-luks-cipher.xml index 2b58850aaf..fd99793612 100644 --- a/tests/storagevolxml2xmlout/vol-luks-cipher.xml +++ b/tests/storagevolxml2xmlout/vol-luks-cipher.xml @@ -1,8 +1,6 @@ LuksDemo.img /var/lib/libvirt/images/LuksDemo.img - - 5368709120 294912 diff --git a/tests/storagevolxml2xmlout/vol-luks.xml b/tests/storagevolxml2= xmlout/vol-luks.xml index 599b3c5c4d..c011d4cc62 100644 --- a/tests/storagevolxml2xmlout/vol-luks.xml +++ b/tests/storagevolxml2xmlout/vol-luks.xml @@ -1,8 +1,6 @@ LuksDemo.img /var/lib/libvirt/images/LuksDemo.img - - 5368709120 294912 diff --git a/tests/storagevolxml2xmlout/vol-partition.xml b/tests/storagevo= lxml2xmlout/vol-partition.xml index 147899edb1..dd9793fbb4 100644 --- a/tests/storagevolxml2xmlout/vol-partition.xml +++ b/tests/storagevolxml2xmlout/vol-partition.xml @@ -1,8 +1,6 @@ sda1 /dev/sda1 - - 106896384 106896384 diff --git a/tests/storagevolxml2xmlout/vol-qcow2-0.10-lazy.xml b/tests/sto= ragevolxml2xmlout/vol-qcow2-0.10-lazy.xml index 9b666ad5bc..afcd330e2d 100644 --- a/tests/storagevolxml2xmlout/vol-qcow2-0.10-lazy.xml +++ b/tests/storagevolxml2xmlout/vol-qcow2-0.10-lazy.xml @@ -1,8 +1,6 @@ OtherDemo.img /var/lib/libvirt/images/OtherDemo.img - - 5368709120 294912 diff --git a/tests/storagevolxml2xmlout/vol-qcow2-1.1.xml b/tests/storagevo= lxml2xmlout/vol-qcow2-1.1.xml index c033f5bd57..634b0a409a 100644 --- a/tests/storagevolxml2xmlout/vol-qcow2-1.1.xml +++ b/tests/storagevolxml2xmlout/vol-qcow2-1.1.xml @@ -1,8 +1,6 @@ OtherDemo.img /var/lib/libvirt/images/OtherDemo.img - - 5368709120 294912 diff --git a/tests/storagevolxml2xmlout/vol-qcow2-encryption.xml b/tests/st= oragevolxml2xmlout/vol-qcow2-encryption.xml index 31dc57873c..837adf41b1 100644 --- a/tests/storagevolxml2xmlout/vol-qcow2-encryption.xml +++ b/tests/storagevolxml2xmlout/vol-qcow2-encryption.xml @@ -1,8 +1,6 @@ OtherDemo.img /var/lib/libvirt/images/OtherDemo.img - - 5368709120 294912 diff --git a/tests/storagevolxml2xmlout/vol-qcow2-lazy.xml b/tests/storagev= olxml2xmlout/vol-qcow2-lazy.xml index ee79e26050..fc6b7542d8 100644 --- a/tests/storagevolxml2xmlout/vol-qcow2-lazy.xml +++ b/tests/storagevolxml2xmlout/vol-qcow2-lazy.xml @@ -1,8 +1,6 @@ OtherDemo.img /var/lib/libvirt/images/OtherDemo.img - - 5368709120 294912 diff --git a/tests/storagevolxml2xmlout/vol-qcow2-luks.xml b/tests/storagev= olxml2xmlout/vol-qcow2-luks.xml index 2e2b7ce125..78edc4239c 100644 --- a/tests/storagevolxml2xmlout/vol-qcow2-luks.xml +++ b/tests/storagevolxml2xmlout/vol-qcow2-luks.xml @@ -1,8 +1,6 @@ OtherDemoLuks.img /var/lib/libvirt/images/OtherDemoLuks.img - - 5368709120 294912 diff --git a/tests/storagevolxml2xmlout/vol-qcow2-nobacking.xml b/tests/sto= ragevolxml2xmlout/vol-qcow2-nobacking.xml index e8281e3b50..7600e25cc1 100644 --- a/tests/storagevolxml2xmlout/vol-qcow2-nobacking.xml +++ b/tests/storagevolxml2xmlout/vol-qcow2-nobacking.xml @@ -1,8 +1,6 @@ OtherDemo.img /var/lib/libvirt/images/OtherDemo.img - - 5368709120 294912 diff --git a/tests/storagevolxml2xmlout/vol-qcow2-nocapacity.xml b/tests/st= oragevolxml2xmlout/vol-qcow2-nocapacity.xml index dbf9003213..a83adb8176 100644 --- a/tests/storagevolxml2xmlout/vol-qcow2-nocapacity.xml +++ b/tests/storagevolxml2xmlout/vol-qcow2-nocapacity.xml @@ -1,8 +1,6 @@ OtherDemo.img /var/lib/libvirt/images/OtherDemo.img - - 0 0 diff --git a/tests/storagevolxml2xmlout/vol-qcow2.xml b/tests/storagevolxml= 2xmlout/vol-qcow2.xml index a7d612135f..8c942d4b78 100644 --- a/tests/storagevolxml2xmlout/vol-qcow2.xml +++ b/tests/storagevolxml2xmlout/vol-qcow2.xml @@ -1,8 +1,6 @@ OtherDemo.img /var/lib/libvirt/images/OtherDemo.img - - 5368709120 294912 diff --git a/tests/storagevolxml2xmlout/vol-sheepdog.xml b/tests/storagevol= xml2xmlout/vol-sheepdog.xml index d6e920bb81..47fb8eb418 100644 --- a/tests/storagevolxml2xmlout/vol-sheepdog.xml +++ b/tests/storagevolxml2xmlout/vol-sheepdog.xml @@ -1,7 +1,5 @@ test2 - - 1024 0 --=20 2.29.2