From nobody Sun May 12 12:36:57 2024 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 1700583978186344.1373490796643; Tue, 21 Nov 2023 08:26:18 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 996) id 27503180D; Tue, 21 Nov 2023 11:26:17 -0500 (EST) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 9C00A18D3; Tue, 21 Nov 2023 11:23:06 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 996) id AD29717D2; Tue, 21 Nov 2023 11:22:45 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.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 47CCD1796 for ; Tue, 21 Nov 2023 11:22:44 -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-317-u24XtwniPPy5oAQG6wzukQ-1; Tue, 21 Nov 2023 11:22:41 -0500 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) (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 0CD08811E82 for ; Tue, 21 Nov 2023 16:22:41 +0000 (UTC) Received: from speedmetal.lan (unknown [10.45.242.11]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7E0E41C060AE for ; Tue, 21 Nov 2023 16:22:40 +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_H4, RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.4 X-MC-Unique: u24XtwniPPy5oAQG6wzukQ-1 From: Peter Krempa To: devel@lists.libvirt.org Subject: [PATCH 1/3] qemuDomainAttachDeviceDiskLiveInternal: Fix jumps on error Date: Tue, 21 Nov 2023 17:22:35 +0100 Message-ID: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.7 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Message-ID-Hash: 2K36M6RTNWYOS2YJIIFTQOSMBRCYPFJQ X-Message-ID-Hash: 2K36M6RTNWYOS2YJIIFTQOSMBRCYPFJQ 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: 1700583979474100001 When I've originally refactored the function in commit 0d981bcefcb5defa2 the logic was still correct, but then later in commit 52f865543920b0 I've moved most of the image setup logic into the function neglecting to add the 'goto cleanup;' needed to skip over the setup of the disk images. Fixes: 52f865543920b0cc5ba93f4407c1b2efdffb8ddc Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_hotplug.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index fec7c4be4e..2d55d1d21e 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -931,7 +931,7 @@ qemuDomainAttachDeviceDiskLiveInternal(virQEMUDriver *d= river, if (disk->device =3D=3D VIR_DOMAIN_DISK_DEVICE_LUN) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", _("disk device=3D'lun' is not supported for usb= bus")); - break; + goto cleanup; } if (virDomainUSBAddressEnsure(priv->usbaddrs, &disk->info) < 0) @@ -991,6 +991,7 @@ qemuDomainAttachDeviceDiskLiveInternal(virQEMUDriver *d= river, virReportError(VIR_ERR_OPERATION_UNSUPPORTED, _("disk bus '%1$s' cannot be hotplugged."), virDomainDiskBusTypeToString(disk->bus)); + goto cleanup; } if (qemuDomainStorageSourceChainAccessAllow(driver, vm, disk->src) < 0) --=20 2.42.0 _______________________________________________ Devel mailing list -- devel@lists.libvirt.org To unsubscribe send an email to devel-leave@lists.libvirt.org From nobody Sun May 12 12:36:57 2024 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 1700583905109945.7202262332582; Tue, 21 Nov 2023 08:25:05 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 996) id 130D417F6; Tue, 21 Nov 2023 11:25:04 -0500 (EST) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 7F4A118BE; Tue, 21 Nov 2023 11:22:57 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 996) id 73D0F1794; Tue, 21 Nov 2023 11:22:44 -0500 (EST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.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 04A991794 for ; Tue, 21 Nov 2023 11:22:43 -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-255-q0HY8D6XPu6UMTl7SaQtRg-1; Tue, 21 Nov 2023 11:22:42 -0500 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) (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 35F7885C1A3 for ; Tue, 21 Nov 2023 16:22:42 +0000 (UTC) Received: from speedmetal.lan (unknown [10.45.242.11]) by smtp.corp.redhat.com (Postfix) with ESMTP id 6DB1C1C060AE for ; Tue, 21 Nov 2023 16:22:41 +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_H4, RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.4 X-MC-Unique: q0HY8D6XPu6UMTl7SaQtRg-1 From: Peter Krempa To: devel@lists.libvirt.org Subject: [PATCH 2/3] qemuDomainAttachDeviceDiskLiveInternal: Add missing jump to 'cleanup' on error Date: Tue, 21 Nov 2023 17:22:36 +0100 Message-ID: <7b9bb0295e6ac0b0dd5f1d269bf4dc430d58bc3d.1700583706.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.7 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Message-ID-Hash: TVZKMDO7VVGTW4Q2E74TB3AYC34FZJJ3 X-Message-ID-Hash: TVZKMDO7VVGTW4Q2E74TB3AYC34FZJJ3 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: 1700583907196100003 Commit allowing hotplug of CDROMs moved the logic forbidding the hotplug to the appropriate blocks based on the disk frontend but forgot to actually bail out on such error. Fixes: 3078799fef82d45ac10624e3bacded7a285d8a4f Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_hotplug.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 2d55d1d21e..80a39c159f 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -944,6 +944,7 @@ qemuDomainAttachDeviceDiskLiveInternal(virQEMUDriver *d= river, if (disk->device =3D=3D VIR_DOMAIN_DISK_DEVICE_CDROM) { virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s", _("cdrom device with virtio bus isn't supported= ")); + goto cleanup; } if (qemuDomainEnsureVirtioAddress(&releaseVirtio, vm, dev) < 0) goto cleanup; --=20 2.42.0 _______________________________________________ Devel mailing list -- devel@lists.libvirt.org To unsubscribe send an email to devel-leave@lists.libvirt.org From nobody Sun May 12 12:36:57 2024 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 1700584077781985.6215697123173; Tue, 21 Nov 2023 08:27:57 -0800 (PST) Received: by lists.libvirt.org (Postfix, from userid 996) id A1B4C1705; Tue, 21 Nov 2023 11:27:56 -0500 (EST) Received: from lists.libvirt.org (localhost [IPv6:::1]) by lists.libvirt.org (Postfix) with ESMTP id 744C81887; Tue, 21 Nov 2023 11:23:15 -0500 (EST) Received: by lists.libvirt.org (Postfix, from userid 996) id 5FB8B1808; Tue, 21 Nov 2023 11:23:03 -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 DF82517E8 for ; Tue, 21 Nov 2023 11:22:46 -0500 (EST) Received: from mimecast-mx02.redhat.com (mx-ext.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-662-rY9l6c_qPgOjrPkO11KZdA-1; Tue, 21 Nov 2023 11:22:45 -0500 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) (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 E95EF1C07568 for ; Tue, 21 Nov 2023 16:22:44 +0000 (UTC) Received: from speedmetal.lan (unknown [10.45.242.11]) by smtp.corp.redhat.com (Postfix) with ESMTP id CD0231C060AE for ; Tue, 21 Nov 2023 16:22:42 +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: rY9l6c_qPgOjrPkO11KZdA-1 From: Peter Krempa To: devel@lists.libvirt.org Subject: [PATCH 3/3] qemu: hotplug: Don't try to setup disk image when hotplugging empty cdrom drive Date: Tue, 21 Nov 2023 17:22:37 +0100 Message-ID: <04dd64b678af1f794475cd53bf5023fecdff7163.1700583706.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.7 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Message-ID-Hash: D4ECFWJMMXTBUHRUV2CGVXZD7OETVTNS X-Message-ID-Hash: D4ECFWJMMXTBUHRUV2CGVXZD7OETVTNS 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: 1700584079856100001 Originally the disk hotplug code didn't know how to attach a CD-ROM drive, thus didn't have the necessary logic to handle empty cdroms. Other disks can't be empty which is enforced by the parser validation logic. When support for hotplugging cdroms was added the code was not adjusted to deal with empty drives thus attempted to setup the blockdev backend for it. Fixes: 3078799fef82d45ac10624e3bacded7a285d8a4f Resolves: https://issues.redhat.com/browse/RHEL-16870 Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_hotplug.c | 96 +++++++++++++++++++++-------------------- 1 file changed, 50 insertions(+), 46 deletions(-) diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index 80a39c159f..f197a9d5ff 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -662,53 +662,55 @@ qemuDomainAttachDiskGeneric(virDomainObj *vm, g_autoptr(qemuSnapshotDiskContext) transientDiskSnapshotCtxt =3D NULL; bool origReadonly =3D disk->src->readonly; - if (disk->transient) - disk->src->readonly =3D true; + if (!virStorageSourceIsEmpty(disk->src)) { + if (disk->transient) + disk->src->readonly =3D true; - if (virStorageSourceGetActualType(disk->src) =3D=3D VIR_STORAGE_TYPE_V= HOST_USER) { - if (!(data =3D qemuBuildStorageSourceChainAttachPrepareChardev(dis= k))) - return -1; - } else { - if (!(data =3D qemuBuildStorageSourceChainAttachPrepareBlockdev(di= sk->src))) - return -1; - - if (disk->copy_on_read =3D=3D VIR_TRISTATE_SWITCH_ON) { - if (!(data->copyOnReadProps =3D qemuBlockStorageGetCopyOnReadP= rops(disk))) + if (virStorageSourceGetActualType(disk->src) =3D=3D VIR_STORAGE_TY= PE_VHOST_USER) { + if (!(data =3D qemuBuildStorageSourceChainAttachPrepareChardev= (disk))) return -1; + } else { + if (!(data =3D qemuBuildStorageSourceChainAttachPrepareBlockde= v(disk->src))) + return -1; + + if (disk->copy_on_read =3D=3D VIR_TRISTATE_SWITCH_ON) { + if (!(data->copyOnReadProps =3D qemuBlockStorageGetCopyOnR= eadProps(disk))) + return -1; - data->copyOnReadNodename =3D g_strdup(QEMU_DOMAIN_DISK_PRIVATE= (disk)->nodeCopyOnRead); + data->copyOnReadNodename =3D g_strdup(QEMU_DOMAIN_DISK_PRI= VATE(disk)->nodeCopyOnRead); + } } - } - disk->src->readonly =3D origReadonly; + disk->src->readonly =3D origReadonly; - if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) - return -1; + if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0) + return -1; - rc =3D qemuBlockStorageSourceChainAttach(priv->mon, data); + rc =3D qemuBlockStorageSourceChainAttach(priv->mon, data); - qemuDomainObjExitMonitor(vm); + qemuDomainObjExitMonitor(vm); - if (rc < 0) - goto rollback; + if (rc < 0) + goto rollback; - if (disk->transient) { - g_autoptr(qemuBlockStorageSourceAttachData) backend =3D NULL; - g_autoptr(GHashTable) blockNamedNodeData =3D NULL; + if (disk->transient) { + g_autoptr(qemuBlockStorageSourceAttachData) backend =3D NULL; + g_autoptr(GHashTable) blockNamedNodeData =3D NULL; - if (!(blockNamedNodeData =3D qemuBlockGetNamedNodeData(vm, asyncJo= b))) - goto rollback; + if (!(blockNamedNodeData =3D qemuBlockGetNamedNodeData(vm, asy= ncJob))) + goto rollback; - if (!(transientDiskSnapshotCtxt =3D qemuDomainAttachDiskGenericTra= nsient(vm, disk, blockNamedNodeData, asyncJob))) - goto rollback; + if (!(transientDiskSnapshotCtxt =3D qemuDomainAttachDiskGeneri= cTransient(vm, disk, blockNamedNodeData, asyncJob))) + goto rollback; - if (qemuSnapshotDiskCreate(transientDiskSnapshotCtxt) < 0) - goto rollback; + if (qemuSnapshotDiskCreate(transientDiskSnapshotCtxt) < 0) + goto rollback; - QEMU_DOMAIN_DISK_PRIVATE(disk)->transientOverlayCreated =3D true; - backend =3D qemuBlockStorageSourceDetachPrepare(disk->src); - ignore_value(VIR_INSERT_ELEMENT(data->srcdata, 0, data->nsrcdata, = backend)); + QEMU_DOMAIN_DISK_PRIVATE(disk)->transientOverlayCreated =3D tr= ue; + backend =3D qemuBlockStorageSourceDetachPrepare(disk->src); + ignore_value(VIR_INSERT_ELEMENT(data->srcdata, 0, data->nsrcda= ta, backend)); + } } if (!(devprops =3D qemuBuildDiskDeviceProps(vm->def, disk, priv->qemuC= aps))) @@ -995,28 +997,30 @@ qemuDomainAttachDeviceDiskLiveInternal(virQEMUDriver = *driver, goto cleanup; } - if (qemuDomainStorageSourceChainAccessAllow(driver, vm, disk->src) < 0) + if (qemuAssignDeviceDiskAlias(vm->def, disk) < 0) goto cleanup; - releaseSeclabel =3D true; + if (!virStorageSourceIsEmpty(disk->src)) { + if (qemuDomainStorageSourceChainAccessAllow(driver, vm, disk->src)= < 0) + goto cleanup; - if (qemuAssignDeviceDiskAlias(vm->def, disk) < 0) - goto cleanup; + releaseSeclabel =3D true; - if (qemuDomainPrepareDiskSource(disk, priv, cfg) < 0) - goto cleanup; + if (qemuDomainPrepareDiskSource(disk, priv, cfg) < 0) + goto cleanup; - if (qemuDomainDetermineDiskChain(driver, vm, disk, NULL) < 0) - goto cleanup; + if (qemuDomainDetermineDiskChain(driver, vm, disk, NULL) < 0) + goto cleanup; - if (qemuProcessPrepareHostStorageDisk(vm, disk) < 0) - goto cleanup; + if (qemuProcessPrepareHostStorageDisk(vm, disk) < 0) + goto cleanup; - if (qemuHotplugAttachManagedPR(vm, disk->src, VIR_ASYNC_JOB_NONE) < 0) - goto cleanup; + if (qemuHotplugAttachManagedPR(vm, disk->src, VIR_ASYNC_JOB_NONE) = < 0) + goto cleanup; - if (qemuNbdkitStartStorageSource(driver, vm, disk->src) < 0) - goto cleanup; + if (qemuNbdkitStartStorageSource(driver, vm, disk->src) < 0) + goto cleanup; + } ret =3D qemuDomainAttachDiskGeneric(vm, disk, VIR_ASYNC_JOB_NONE); --=20 2.42.0 _______________________________________________ Devel mailing list -- devel@lists.libvirt.org To unsubscribe send an email to devel-leave@lists.libvirt.org