From nobody Wed Apr 15 06:22:57 2026 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=1692005812; cv=none; d=zohomail.com; s=zohoarc; b=oEm9iKHSBtVhz0LNNjKe0uEDmYYwtQHzp4Li5kxVreVSgmI56XoqSMW2zT6F1+4+UTzu4kkcAL70hwLVXZR8ufx+V+ase1L3x1v4P0qIkME9GB+VPZ0J9yWi+gFRXgNDrta3eqa5mjtTugCUuZzmBAMcUiZgrlSb+g1nHGIiQ5g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1692005812; 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=KEH6nhUmhscP/MylJEv+o4MZaO8JpyVv5X7Y8bE6Zdw=; b=WH+JUw3sF6nP+X5FufkbOelvrGdd7mpBDBdEKg5oSUuVIQGwSSLMoamHTEAAhZyliyB6syiQXH1a6OTNC/icJbBVR97Jyq8bnnW9Sadwyz9y6sTVh/kDBGU546l9Wmnwn+KwGqhpo/Hzasqf/yUA6cqMz8UL7Pio0qBQzbzHBZw= 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) 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 1692005812862592.8189142679499; Mon, 14 Aug 2023 02:36:52 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-450-b_Y_F5iIMVe3Z_d7Hd4IRg-1; Mon, 14 Aug 2023 05:36:46 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id CAD4280CC49; Mon, 14 Aug 2023 09:36:43 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 77DA840D2840; Mon, 14 Aug 2023 09:36:43 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 6B7A11946A71; Mon, 14 Aug 2023 09:36:40 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.rdu2.redhat.com [10.11.54.1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 910371946586 for ; Mon, 14 Aug 2023 09:36:37 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id DFCA840C2078; Mon, 14 Aug 2023 09:36:22 +0000 (UTC) Received: from antique-work.redhat.com (unknown [10.45.226.4]) by smtp.corp.redhat.com (Postfix) with ESMTP id 6225740C2073 for ; Mon, 14 Aug 2023 09:36:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1692005811; 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=KEH6nhUmhscP/MylJEv+o4MZaO8JpyVv5X7Y8bE6Zdw=; b=VALhPEEl7ehGyKbru69vIcVxmSzmjc9xPKR93R7EkwboIW6L9KKb49ApV7c8MC0d2QDd1U Um1pqsDHAaTkichWbFrGh0eE7A3q1//Zd43UhTonMQbokQD9CtB3Nk7qaU8JbSkIr2VMeU ylhTz+xuUdSbO92pXZ5Eqgf1XejmRm8= X-MC-Unique: b_Y_F5iIMVe3Z_d7Hd4IRg-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Pavel Hrdina To: libvir-list@redhat.com Subject: [libvirt PATCH v3 07/25] qemu_snapshot: use virDomainDiskByName while updating domain def Date: Mon, 14 Aug 2023 11:35:59 +0200 Message-ID: <631fb8d087bb0522e11bf65daff0a0ff313d5330.1692005543.git.phrdina@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.1 on 10.11.54.1 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 3.1 on 10.11.54.2 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1692005815104100007 Content-Type: text/plain; charset="utf-8"; x-default="true" When creating external snapshot this function is called only when the VM is not running so there is only one definition to care about. However, it will be used by external snapshot revert code for active and inactive definition and they may be different if a disk was (un)plugged only for the active or inactive definition. The current code would crash so use virDomainDiskByName() to get the correct disk from the domain definition based on the disk name and make sure it exists. Signed-off-by: Pavel Hrdina Reviewed-by: Peter Krempa --- src/qemu/qemu_snapshot.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/qemu/qemu_snapshot.c b/src/qemu/qemu_snapshot.c index 72a0f71d4f..8e1eb21b5d 100644 --- a/src/qemu/qemu_snapshot.c +++ b/src/qemu/qemu_snapshot.c @@ -152,11 +152,14 @@ qemuSnapshotDomainDefUpdateDisk(virDomainDef *domdef, for (i =3D 0; i < snapdef->ndisks; i++) { g_autoptr(virStorageSource) newsrc =3D NULL; virDomainSnapshotDiskDef *snapdisk =3D &(snapdef->disks[i]); - virDomainDiskDef *defdisk =3D domdef->disks[i]; + virDomainDiskDef *defdisk =3D virDomainDiskByName(domdef, snapdisk= ->name, false); =20 if (snapdisk->snapshot !=3D VIR_DOMAIN_SNAPSHOT_LOCATION_EXTERNAL) continue; =20 + if (!defdisk) + continue; + if (!(newsrc =3D virStorageSourceCopy(snapdisk->src, false))) return -1; =20 --=20 2.41.0