From nobody Mon Feb 9 01:48:07 2026 Delivered-To: importer@patchew.org Received-SPF: none (zohomail.com: 8.43.85.245 is neither permitted nor denied by domain of lists.libvirt.org) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; spf=none (zohomail.com: 8.43.85.245 is neither permitted nor denied by domain of lists.libvirt.org) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1701798618008271.15673589037556; Tue, 5 Dec 2023 09:50:18 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 996) id 067F017EF; Tue, 5 Dec 2023 12:50:16 -0500 (EST) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 1CE5718EA; Tue, 5 Dec 2023 12:41:42 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 996) id 7186B17AC; Tue, 5 Dec 2023 12:41:15 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id E72D01790 for ; Tue, 5 Dec 2023 12:41:13 -0500 (EST) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-548-h6KKO58CNMCAUFSikAcvfg-1; Tue, 05 Dec 2023 12:41:12 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.rdu2.redhat.com [10.11.54.8]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 0A6F210AFB09 for ; Tue, 5 Dec 2023 17:41:12 +0000 (UTC) Received: from speedmetal.lan (unknown [10.45.242.18]) by smtp.corp.redhat.com (Postfix) with ESMTP id 80B1AC15E6A for ; Tue, 5 Dec 2023 17:41:11 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.4 X-MC-Unique: h6KKO58CNMCAUFSikAcvfg-1 From: Peter Krempa To: devel@lists.libvirt.org Subject: [RFC PATCH 4/5] qemu: block: Always add extra 'raw' layer for storage slice Date: Tue, 5 Dec 2023 18:41:05 +0100 Message-ID: <3553a4a72be3c618f64cac330780840aba92ca89.1701797977.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.8 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Message-ID-Hash: XZ6GSIPWJATAME7LOMVMHKCLSSEHUPQC X-Message-ID-Hash: XZ6GSIPWJATAME7LOMVMHKCLSSEHUPQC X-MailFrom: pkrempa@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; header-match-config-2; header-match-config-3; header-match-devel.lists.libvirt.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header X-Mailman-Version: 3.2.2 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZM-MESSAGEID: 1701798619905100001 Remove the simplification logic for the storage slice layer, as in upcoming patches we'll be getting rid of the raw 'format' layer. Doing this here will make it more clear what configuration is being changed. Since adding an extra layer creates just overhead and it will be removed within the same release we can do it in steps. Signed-off-by: Peter Krempa --- src/qemu/qemu_block.c | 36 ++----------------- .../disk-slices.x86_64-latest.args | 6 ++-- 2 files changed, 6 insertions(+), 36 deletions(-) diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c index 7e9daf0bdc..738a8fedd3 100644 --- a/src/qemu/qemu_block.c +++ b/src/qemu/qemu_block.c @@ -1203,27 +1203,6 @@ qemuBlockStorageSourceGetFormatLUKSProps(virStorageS= ource *src, } -static int -qemuBlockStorageSourceGetFormatRawProps(virStorageSource *src, - virJSONValue *props) -{ - if (virJSONValueObjectAdd(&props, "s:driver", "raw", NULL) < 0) - return -1; - - /* Currently only storage slices are supported. We'll have to calculate - * the union of the slices here if we don't want to be adding needless - * 'raw' nodes. */ - if (src->sliceStorage && - virJSONValueObjectAdd(&props, - "U:offset", src->sliceStorage->offset, - "U:size", src->sliceStorage->size, - NULL) < 0) - return -1; - - return 0; -} - - static int qemuBlockStorageSourceGetCryptoProps(virStorageSource *src, virJSONValue **encprops) @@ -1343,8 +1322,7 @@ qemuBlockStorageSourceGetBlockdevFormatProps(virStora= geSource *src) if (qemuBlockStorageSourceGetFormatLUKSProps(src, props) < 0) return NULL; } else { - if (qemuBlockStorageSourceGetFormatRawProps(src, props) < 0) - return NULL; + driver =3D "raw"; } break; @@ -3253,17 +3231,7 @@ qemuBlockReopenReadOnly(virDomainObj *vm, bool qemuBlockStorageSourceNeedsStorageSliceLayer(const virStorageSource *src) { - if (!src->sliceStorage) - return false; - - if (src->format !=3D VIR_STORAGE_FILE_RAW) - return true; - - if (src->encryption && - src->encryption->format =3D=3D VIR_STORAGE_ENCRYPTION_FORMAT_LUKS) - return true; - - return false; + return !!src->sliceStorage; } diff --git a/tests/qemuxml2argvdata/disk-slices.x86_64-latest.args b/tests/= qemuxml2argvdata/disk-slices.x86_64-latest.args index 363f0c0361..b2c49a2df4 100644 --- a/tests/qemuxml2argvdata/disk-slices.x86_64-latest.args +++ b/tests/qemuxml2argvdata/disk-slices.x86_64-latest.args @@ -28,7 +28,8 @@ XDG_CONFIG_HOME=3D/var/lib/libvirt/qemu/domain--1-QEMUGue= st1/.config \ -boot strict=3Don \ -device '{"driver":"piix3-usb-uhci","id":"usb","bus":"pci.0","addr":"0x1.0= x2"}' \ -blockdev '{"driver":"file","filename":"/var/lib/libvirt/images/raw.img","= node-name":"libvirt-6-storage","auto-read-only":true,"discard":"unmap"}' \ --blockdev '{"node-name":"libvirt-6-format","read-only":false,"driver":"raw= ","offset":0,"size":321,"file":"libvirt-6-storage"}' \ +-blockdev '{"driver":"raw","offset":0,"size":321,"file":"libvirt-6-storage= ","node-name":"libvirt-6-slice-sto","auto-read-only":true,"discard":"unmap"= }' \ +-blockdev '{"node-name":"libvirt-6-format","read-only":false,"driver":"raw= ","file":"libvirt-6-slice-sto"}' \ -device '{"driver":"virtio-blk-pci","bus":"pci.0","addr":"0x2","drive":"li= bvirt-6-format","id":"virtio-disk0","bootindex":1}' \ -blockdev '{"driver":"file","filename":"/var/lib/libvirt/images/raw.img","= node-name":"libvirt-5-storage","auto-read-only":true,"discard":"unmap"}' \ -blockdev '{"driver":"raw","offset":9876,"size":123456789,"file":"libvirt-= 5-storage","node-name":"libvirt-5-slice-sto","auto-read-only":true,"discard= ":"unmap"}' \ @@ -42,7 +43,8 @@ XDG_CONFIG_HOME=3D/var/lib/libvirt/qemu/domain--1-QEMUGue= st1/.config \ -blockdev '{"node-name":"libvirt-3-format","read-only":false,"driver":"luk= s","key-secret":"libvirt-3-format-encryption-secret0","file":"libvirt-3-sli= ce-sto"}' \ -device '{"driver":"virtio-blk-pci","bus":"pci.0","addr":"0x4","drive":"li= bvirt-3-format","id":"virtio-disk2"}' \ -blockdev '{"driver":"nvme","device":"0000:02:00.0","namespace":1,"node-na= me":"libvirt-2-storage","auto-read-only":true,"discard":"unmap"}' \ --blockdev '{"node-name":"libvirt-2-format","read-only":false,"driver":"raw= ","offset":1234,"size":321,"file":"libvirt-2-storage"}' \ +-blockdev '{"driver":"raw","offset":1234,"size":321,"file":"libvirt-2-stor= age","node-name":"libvirt-2-slice-sto","auto-read-only":true,"discard":"unm= ap"}' \ +-blockdev '{"node-name":"libvirt-2-format","read-only":false,"driver":"raw= ","file":"libvirt-2-slice-sto"}' \ -device '{"driver":"virtio-blk-pci","bus":"pci.0","addr":"0x6","drive":"li= bvirt-2-format","id":"virtio-disk3"}' \ -object '{"qom-type":"secret","id":"libvirt-1-format-encryption-secret0","= data":"9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1","k= eyid":"masterKey0","iv":"AAECAwQFBgcICQoLDA0ODw=3D=3D","format":"base64"}' \ -blockdev '{"driver":"nvme","device":"0001:02:00.0","namespace":2,"node-na= me":"libvirt-1-storage","auto-read-only":true,"discard":"unmap","cache":{"d= irect":true,"no-flush":false}}' \ --=20 2.43.0 _______________________________________________ Devel mailing list -- devel@lists.libvirt.org To unsubscribe send an email to devel-leave@lists.libvirt.org