From nobody Tue May 7 23:19:58 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) client-ip=216.205.24.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 216.205.24.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=1600933098; cv=none; d=zohomail.com; s=zohoarc; b=jeoa2mn7wSvfm7Gk5nXzUUjYKc8Wzh4TK7Xrwty0ggRC3QPKZ/JtNP3ODMv7hn9Gh4ncoCMeL0GtB1zR9kzAeuybAcgCK0z0djJrNS2Y9v+vTwP71UFhtN33SkU+JrBDKJ3NMELJADNRbTvKRUrArbY5MyZdkfdGTm5dqxFamWY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1600933098; 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=bZpUSs+FZBCzLhKhIpE3z8O+Ld3Vs7FxrjSJ6yKbdIc=; b=he2euMfQyBPbBfZHuJqRR66E7dGaAvrL4erm7C1BR9Eqd/hjPXRobTOy90BjqfJ0ZiHwz7KdUYbnKijUCRkBhcqU9kRzfb2H6WvD9uGmSzsuOkf3uhDVmHkbo+/fd2dz2uXKjwjufU7+19YtF49cHse6Ntt2+1fOXq82BeyrtBM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.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 [216.205.24.124]) by mx.zohomail.com with SMTPS id 1600933098787373.14835584852494; Thu, 24 Sep 2020 00:38:18 -0700 (PDT) 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-489-MyfNXBZ1My-lNIjHe3mr0A-1; Thu, 24 Sep 2020 03:38:15 -0400 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 72848800471; Thu, 24 Sep 2020 07:38:09 +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 5275B7368F; Thu, 24 Sep 2020 07:38:09 +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 1E3723E6FB; Thu, 24 Sep 2020 07:38:09 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 08O7bv6o009114 for ; Thu, 24 Sep 2020 03:37:57 -0400 Received: by smtp.corp.redhat.com (Postfix) id 3BC1573668; Thu, 24 Sep 2020 07:37:57 +0000 (UTC) Received: from speedmetal.redhat.com (unknown [10.40.208.55]) by smtp.corp.redhat.com (Postfix) with ESMTP id 982727366A for ; Thu, 24 Sep 2020 07:37:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1600933097; 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=bZpUSs+FZBCzLhKhIpE3z8O+Ld3Vs7FxrjSJ6yKbdIc=; b=RNi4s4gNmYn4EQbWo0xWdmexN/8Xk4c+WSLUAcTLzKGT/6cEC+WBY9Q8CCBZ3oUvCr1J/H wz0ScMcZQ5BtTng8krBM88+aJtfr0ycslsIOTjrjc+BLlBcVWsUVJ8jbUbNfRRdleCZYAl rrZADAx95E2PbyJdRavCdjjDQIcR4j0= X-MC-Unique: MyfNXBZ1My-lNIjHe3mr0A-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 1/6] qemu: snapshot: Rename 'qemuSnapshotCreateDiskActive' to 'qemuSnapshotCreateActiveExternalDisks' Date: Thu, 24 Sep 2020 09:37:46 +0200 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 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" Be more specific about the role of the function. It's creating the disk portion of an external active snapshot. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_snapshot.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/qemu/qemu_snapshot.c b/src/qemu/qemu_snapshot.c index 48a4e9dd41..0435d4c371 100644 --- a/src/qemu/qemu_snapshot.c +++ b/src/qemu/qemu_snapshot.c @@ -1151,13 +1151,13 @@ qemuSnapshotDiskUpdateSource(virQEMUDriverPtr drive= r, /* The domain is expected to be locked and active. */ static int -qemuSnapshotCreateDiskActive(virQEMUDriverPtr driver, - virDomainObjPtr vm, - virDomainMomentObjPtr snap, - virHashTablePtr blockNamedNodeData, - unsigned int flags, - virQEMUDriverConfigPtr cfg, - qemuDomainAsyncJob asyncJob) +qemuSnapshotCreateActiveExternalDisks(virQEMUDriverPtr driver, + virDomainObjPtr vm, + virDomainMomentObjPtr snap, + virHashTablePtr blockNamedNodeData, + unsigned int flags, + virQEMUDriverConfigPtr cfg, + qemuDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; g_autoptr(virJSONValue) actions =3D NULL; @@ -1346,9 +1346,9 @@ qemuSnapshotCreateActiveExternal(virQEMUDriverPtr dri= ver, /* the domain is now paused if a memory snapshot was requested */ - if ((ret =3D qemuSnapshotCreateDiskActive(driver, vm, snap, - blockNamedNodeData, flags, cfg, - QEMU_ASYNC_JOB_SNAPSHOT)) < 0) + if ((ret =3D qemuSnapshotCreateActiveExternalDisks(driver, vm, snap, + blockNamedNodeData, f= lags, cfg, + QEMU_ASYNC_JOB_SNAPSH= OT)) < 0) goto cleanup; /* the snapshot is complete now */ --=20 2.26.2 From nobody Tue May 7 23:19:58 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) client-ip=216.205.24.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 216.205.24.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=1600933091; cv=none; d=zohomail.com; s=zohoarc; b=M0tI+jY45bcD/WyORgJKGBQpVel8jMywMr4/2EdXsX0ISLAShOLiwabrb2iHd28SMEJPIMMHEBgrL2y9+/XIDEB/+/KxiB5SvD/Skvr0jdPgIR9+CUa/x3Gah+dPxw2AnAY7yijmxyK1uv/X5Sn5E/iotEDAiW9IriwKs13NHi4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1600933091; 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=Js7fP3fYXyPPxlWuYfs2Xvjl595BG+a9Fjp/WfuaZoU=; b=VcVp0tNKDkLqyPgxpsXxsRa8S1musJ2O9faMpG3P/vHrrgYYmooQkesIYfM1dtFw9uG7hY0C2NtAxhUCjVJp+fIm55SOEhN0ZUT8HI7To4zFWSSQVKQ+fcHN6fs0yaDBMGrBUdt6esaV8L71YBkSzCllOTIoq4qH902g1EHUJ1A= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.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 [216.205.24.124]) by mx.zohomail.com with SMTPS id 1600933091586537.2371542789023; Thu, 24 Sep 2020 00:38:11 -0700 (PDT) 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-177-cTVw26gGNMStZquX6kR9_Q-1; Thu, 24 Sep 2020 03:38:07 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 5E9CC1891E9E; Thu, 24 Sep 2020 07:38:01 +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 5F8A05D990; Thu, 24 Sep 2020 07:38:00 +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 A0552181A06C; Thu, 24 Sep 2020 07:37:59 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 08O7bwpe009122 for ; Thu, 24 Sep 2020 03:37:58 -0400 Received: by smtp.corp.redhat.com (Postfix) id 52F0B7368B; Thu, 24 Sep 2020 07:37:58 +0000 (UTC) Received: from speedmetal.redhat.com (unknown [10.40.208.55]) by smtp.corp.redhat.com (Postfix) with ESMTP id A079173668 for ; Thu, 24 Sep 2020 07:37:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1600933090; 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=Js7fP3fYXyPPxlWuYfs2Xvjl595BG+a9Fjp/WfuaZoU=; b=dCs0cMlHltyKF9PCYu8qnPmyPRVEcHPcb4ZIjczBLr4e3uOK7puCWMU4d6qBlr15uxYa1P jdHJStwPT1BKX1XlcwxE781ktdovJpkzsPFl8zIB5EjsTP+cF/XsR/78j55oS6DiQJGVaE IKVNWafuIDjv3MB/UO1u5j0zvGtGB8U= X-MC-Unique: cTVw26gGNMStZquX6kR9_Q-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 2/6] qemuSnapshotDiskUpdateSource: Extract 'driver' and 'blockdev' from 'vm' Date: Thu, 24 Sep 2020 09:37:47 +0200 Message-Id: In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 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.14 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" Reduce the number of arguments by taking them from 'vm'. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_snapshot.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/qemu/qemu_snapshot.c b/src/qemu/qemu_snapshot.c index 0435d4c371..d6e0a75996 100644 --- a/src/qemu/qemu_snapshot.c +++ b/src/qemu/qemu_snapshot.c @@ -1103,19 +1103,18 @@ qemuSnapshotDiskUpdateSourceRenumber(virStorageSour= cePtr src) /** * qemuSnapshotDiskUpdateSource: - * @driver: QEMU driver * @vm: domain object * @dd: snapshot disk data object - * @blockdev: -blockdev is in use for the VM * * Updates disk definition after a successful snapshot. */ static void -qemuSnapshotDiskUpdateSource(virQEMUDriverPtr driver, - virDomainObjPtr vm, - qemuSnapshotDiskDataPtr dd, - bool blockdev) +qemuSnapshotDiskUpdateSource(virDomainObjPtr vm, + qemuSnapshotDiskDataPtr dd) { + qemuDomainObjPrivatePtr priv =3D vm->privateData; + virQEMUDriverPtr driver =3D priv->driver; + /* storage driver access won'd be needed */ if (dd->initialized) virStorageFileDeinit(dd->src); @@ -1138,7 +1137,7 @@ qemuSnapshotDiskUpdateSource(virQEMUDriverPtr driver, dd->disk->src =3D g_steal_pointer(&dd->src); /* fix numbering of disks */ - if (!blockdev) + if (!virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKDEV)) qemuSnapshotDiskUpdateSourceRenumber(dd->disk->src); if (dd->persistdisk) { @@ -1201,7 +1200,7 @@ qemuSnapshotCreateActiveExternalDisks(virQEMUDriverPt= r driver, virDomainAuditDisk(vm, dd->disk->src, dd->src, "snapshot", rc >=3D= 0); if (rc =3D=3D 0) - qemuSnapshotDiskUpdateSource(driver, vm, dd, blockdev); + qemuSnapshotDiskUpdateSource(vm, dd); } if (rc < 0) --=20 2.26.2 From nobody Tue May 7 23:19:58 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=1600933101; cv=none; d=zohomail.com; s=zohoarc; b=YlRmYyCFYWDaMQwJIR3wY8fA0cry7go55kVBIWhRzfAh06FaI3qI9ArOQJ22xV5RoaBcWZV7RALzUuNkm0Be5eFnTb9QgvJAQAcV7iRpnB+TsoIUZz9P3dTkpUuWwNqWulZakv4v9K11x/DzeQtM0+7xeGXkel+aL/gOodDwNEc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1600933101; 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=bC/frR7TjnsZTXIC0kIIA5qbW3twww5HP3Ykk4eFuE4=; b=e/YQ+LEeW4VZeCwfO79028tEkfteBiQgKgFLgCjAlBIqFYz1WQCpNKgn3OOzmw9oDRi4YP4UDMlE2ZAtiZoPdvhFsJItb37V+EsMm+KGW8rG+ZAxKVUzTae2Aux0hYNO9mOqM9mUhn/+j3GPfmPLRVfV4XW7qGYRwYvSGGDF+Mk= 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 160093310152259.41071044089426; Thu, 24 Sep 2020 00:38:21 -0700 (PDT) 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-396-bC5qPPVDMY2y7Pg20Trnxw-1; Thu, 24 Sep 2020 03:38:18 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 0730164144; Thu, 24 Sep 2020 07:38:13 +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 EB44E5DA81; Thu, 24 Sep 2020 07:38:11 +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 AF3788C7A0; Thu, 24 Sep 2020 07:38:11 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 08O7bxfK009129 for ; Thu, 24 Sep 2020 03:37:59 -0400 Received: by smtp.corp.redhat.com (Postfix) id 67F077366A; Thu, 24 Sep 2020 07:37:59 +0000 (UTC) Received: from speedmetal.redhat.com (unknown [10.40.208.55]) by smtp.corp.redhat.com (Postfix) with ESMTP id BE72C73668 for ; Thu, 24 Sep 2020 07:37:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1600933100; 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=bC/frR7TjnsZTXIC0kIIA5qbW3twww5HP3Ykk4eFuE4=; b=DaVNr/FWPv571BEssXsnYdCocKidUKyQuxgujdU+drCNohTzoAlRlzBUQHSHVqB1fl5Cw5 zXztxws4rEv0SW4YDWBGzLhm0z8j9QYItbiUmqyjEysEWaxIY+RbXgsIg9dYlLUUSRBcG/ lnTlnB+q1q0O+KZVIyZiaKzQ2pToVWo= X-MC-Unique: bC5qPPVDMY2y7Pg20Trnxw-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 3/6] qemuSnapshotDiskPrepare/Cleanup: simplify passing of 'driver' and 'blockdev' Date: Thu, 24 Sep 2020 09:37:48 +0200 Message-Id: <054f715e195474837d3c8655ece8d6e552a8f58f.1600932998.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 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.14 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" Both can be fetched from 'vm'. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_snapshot.c | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/src/qemu/qemu_snapshot.c b/src/qemu/qemu_snapshot.c index d6e0a75996..6fdc187d83 100644 --- a/src/qemu/qemu_snapshot.c +++ b/src/qemu/qemu_snapshot.c @@ -792,10 +792,11 @@ typedef qemuSnapshotDiskData *qemuSnapshotDiskDataPtr; static void qemuSnapshotDiskCleanup(qemuSnapshotDiskDataPtr data, size_t ndata, - virQEMUDriverPtr driver, virDomainObjPtr vm, qemuDomainAsyncJob asyncJob) { + qemuDomainObjPrivatePtr priv =3D vm->privateData; + virQEMUDriverPtr driver =3D priv->driver; virErrorPtr orig_err; size_t i; @@ -931,18 +932,19 @@ qemuSnapshotDiskPrepareOneBlockdev(virQEMUDriverPtr d= river, static int -qemuSnapshotDiskPrepareOne(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuSnapshotDiskPrepareOne(virDomainObjPtr vm, virQEMUDriverConfigPtr cfg, virDomainDiskDefPtr disk, virDomainSnapshotDiskDefPtr snapdisk, qemuSnapshotDiskDataPtr dd, virHashTablePtr blockNamedNodeData, bool reuse, - bool blockdev, qemuDomainAsyncJob asyncJob, virJSONValuePtr actions) { + qemuDomainObjPrivatePtr priv =3D vm->privateData; + virQEMUDriverPtr driver =3D priv->driver; + bool blockdev =3D virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKDEV); virDomainDiskDefPtr persistdisk; bool supportsCreate; bool updateRelativeBacking =3D false; @@ -1045,12 +1047,10 @@ qemuSnapshotDiskPrepareOne(virQEMUDriverPtr driver, * that are selected for the snapshot. */ static int -qemuSnapshotDiskPrepare(virQEMUDriverPtr driver, - virDomainObjPtr vm, +qemuSnapshotDiskPrepare(virDomainObjPtr vm, virDomainMomentObjPtr snap, virQEMUDriverConfigPtr cfg, bool reuse, - bool blockdev, virHashTablePtr blockNamedNodeData, qemuDomainAsyncJob asyncJob, qemuSnapshotDiskDataPtr *rdata, @@ -1070,11 +1070,11 @@ qemuSnapshotDiskPrepare(virQEMUDriverPtr driver, if (snapdef->disks[i].snapshot =3D=3D VIR_DOMAIN_SNAPSHOT_LOCATION= _NONE) continue; - if (qemuSnapshotDiskPrepareOne(driver, vm, cfg, vm->def->disks[i], + if (qemuSnapshotDiskPrepareOne(vm, cfg, vm->def->disks[i], snapdef->disks + i, data + ndata++, blockNamedNodeData, - reuse, blockdev, + reuse, asyncJob, actions) < 0) goto cleanup; @@ -1085,7 +1085,7 @@ qemuSnapshotDiskPrepare(virQEMUDriverPtr driver, ret =3D 0; cleanup: - qemuSnapshotDiskCleanup(data, ndata, driver, vm, asyncJob); + qemuSnapshotDiskCleanup(data, ndata, vm, asyncJob); return ret; } @@ -1166,7 +1166,6 @@ qemuSnapshotCreateActiveExternalDisks(virQEMUDriverPt= r driver, bool reuse =3D (flags & VIR_DOMAIN_SNAPSHOT_CREATE_REUSE_EXT) !=3D 0; qemuSnapshotDiskDataPtr diskdata =3D NULL; size_t ndiskdata =3D 0; - bool blockdev =3D virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKDEV); if (virDomainObjCheckActive(vm) < 0) return -1; @@ -1175,7 +1174,7 @@ qemuSnapshotCreateActiveExternalDisks(virQEMUDriverPt= r driver, /* prepare a list of objects to use in the vm definition so that we do= n't * have to roll back later */ - if (qemuSnapshotDiskPrepare(driver, vm, snap, cfg, reuse, blockdev, + if (qemuSnapshotDiskPrepare(vm, snap, cfg, reuse, blockNamedNodeData, asyncJob, &diskdata, &ndiskdata, actions) < 0) goto cleanup; @@ -1214,7 +1213,7 @@ qemuSnapshotCreateActiveExternalDisks(virQEMUDriverPt= r driver, ret =3D 0; cleanup: - qemuSnapshotDiskCleanup(diskdata, ndiskdata, driver, vm, asyncJob); + qemuSnapshotDiskCleanup(diskdata, ndiskdata, vm, asyncJob); return ret; } --=20 2.26.2 From nobody Tue May 7 23:19:58 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) client-ip=216.205.24.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 216.205.24.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=1600933099; cv=none; d=zohomail.com; s=zohoarc; b=YxFg3tZDzV4u45C3XyF1DbFO2U8gEVq6SMA8XUSHjIKlAXzB7ss0Rv8HjtQvf+sTg9I3EdauYkwYt449DBxkfPTdvMwu3muVFueFBhb+3IXaON37tj5QeUYfmnmTJK48fGJyZc82xN4bJ3o6q9DgEFeWzZFB1zKl5BYtZ1Ryt5k= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1600933099; 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=43273zUyA87Wk1ciy1IxBxDtJaxgnryehncLHoU4GEs=; b=PzBX4yQaBmktvHJ2UTKnQzfkbe1cAwWg9DZm8bpca5T3kdHlLblo8/MS8DQq0LSamFxCEG5cxtlgGCBjRvhquMW9WZgPszPvL5Aj68BnMOGOL+TodsCSG3BOfEPZtGFSkFjjY2QTThfTgUnr6O1z/F46n3790gXZEpNhI8VkkMQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.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 [216.205.24.124]) by mx.zohomail.com with SMTPS id 1600933099135559.5012297273419; Thu, 24 Sep 2020 00:38:19 -0700 (PDT) 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-13-RKDjSX6TMFGlBmTNiokneA-1; Thu, 24 Sep 2020 03:38:15 -0400 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 7A486800493; Thu, 24 Sep 2020 07:38:09 +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 59A3B9CBA; Thu, 24 Sep 2020 07:38:09 +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 2210979FF3; Thu, 24 Sep 2020 07:38:09 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 08O7c0C0009137 for ; Thu, 24 Sep 2020 03:38:00 -0400 Received: by smtp.corp.redhat.com (Postfix) id 6F48973668; Thu, 24 Sep 2020 07:38:00 +0000 (UTC) Received: from speedmetal.redhat.com (unknown [10.40.208.55]) by smtp.corp.redhat.com (Postfix) with ESMTP id D0B597368A for ; Thu, 24 Sep 2020 07:37:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1600933097; 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=43273zUyA87Wk1ciy1IxBxDtJaxgnryehncLHoU4GEs=; b=BfzGeL5Fk7+qJtMyStZ2PlOatIdoBOrLdPFqWDnYP5sAGJOGw6uLRuZLDcoZb5FAc4z0Kq Fh7muAplo9KeTWFK8g+VlBTmzrGPqW7Uw0U2P2zb+GUkPXHKRWJ9EwBoXJzm74EdN16IEq fl8Q9FAR66ZQ2jKKQxfRBv9zJiK/IXA= X-MC-Unique: RKDjSX6TMFGlBmTNiokneA-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 4/6] qemu: snapshot: Introduce qemuSnapshotDiskContext Date: Thu, 24 Sep 2020 09:37:49 +0200 Message-Id: <3a39cef7c83803f04ed6e376959ff86bcfc44dc9.1600932998.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 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.11 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" Add a container struct which holds all data needed to create and clean up after a (for now external) snapshot. This will aggregate all the 'qemuSnapshotDiskDataPtr' the 'actions' of a transaction QMP command and everything needed for cleanup at any given point. This aggregation allows to simplify the arguments of the functions which prepare the snapshot data and additionally will simplify the code necessary for creating overlays on top of disks. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_snapshot.c | 112 +++++++++++++++++++++++---------------- 1 file changed, 67 insertions(+), 45 deletions(-) diff --git a/src/qemu/qemu_snapshot.c b/src/qemu/qemu_snapshot.c index 6fdc187d83..b9b640058c 100644 --- a/src/qemu/qemu_snapshot.c +++ b/src/qemu/qemu_snapshot.c @@ -842,6 +842,52 @@ qemuSnapshotDiskCleanup(qemuSnapshotDiskDataPtr data, } +struct _qemuSnapshotDiskContext { + qemuSnapshotDiskDataPtr dd; + size_t ndd; + + virJSONValuePtr actions; + + /* needed for automatic cleanup of 'dd' */ + virDomainObjPtr vm; + qemuDomainAsyncJob asyncJob; +}; + +typedef struct _qemuSnapshotDiskContext qemuSnapshotDiskContext; +typedef qemuSnapshotDiskContext *qemuSnapshotDiskContextPtr; + + +static qemuSnapshotDiskContextPtr +qemuSnapshotDiskContextNew(size_t ndisks, + virDomainObjPtr vm, + qemuDomainAsyncJob asyncJob) +{ + qemuSnapshotDiskContextPtr ret =3D g_new0(qemuSnapshotDiskContext, 1); + + ret->dd =3D g_new0(qemuSnapshotDiskData, ndisks); + ret->ndd =3D ndisks; + ret->actions =3D virJSONValueNewArray(); + ret->vm =3D vm; + ret->asyncJob =3D asyncJob; + + return ret; +} + + +static void +qemuSnapshotDiskContextCleanup(qemuSnapshotDiskContextPtr snapctxt) +{ + if (!snapctxt) + return; + + virJSONValueFree(snapctxt->actions); + + qemuSnapshotDiskCleanup(snapctxt->dd, snapctxt->ndd, snapctxt->vm, sna= pctxt->asyncJob); +} + +G_DEFINE_AUTOPTR_CLEANUP_FUNC(qemuSnapshotDiskContext, qemuSnapshotDiskCon= textCleanup); + + /** * qemuSnapshotDiskBitmapsPropagate: * @@ -1046,25 +1092,19 @@ qemuSnapshotDiskPrepareOne(virDomainObjPtr vm, * Collects and prepares a list of structures that hold information about = disks * that are selected for the snapshot. */ -static int +static qemuSnapshotDiskContextPtr qemuSnapshotDiskPrepare(virDomainObjPtr vm, virDomainMomentObjPtr snap, virQEMUDriverConfigPtr cfg, bool reuse, virHashTablePtr blockNamedNodeData, - qemuDomainAsyncJob asyncJob, - qemuSnapshotDiskDataPtr *rdata, - size_t *rndata, - virJSONValuePtr actions) + qemuDomainAsyncJob asyncJob) { + g_autoptr(qemuSnapshotDiskContext) snapctxt =3D NULL; size_t i; - qemuSnapshotDiskDataPtr data; - size_t ndata =3D 0; virDomainSnapshotDefPtr snapdef =3D virDomainSnapshotObjGetDef(snap); - int ret =3D -1; - if (VIR_ALLOC_N(data, snapdef->ndisks) < 0) - return -1; + snapctxt =3D qemuSnapshotDiskContextNew(snapdef->ndisks, vm, asyncJob); for (i =3D 0; i < snapdef->ndisks; i++) { if (snapdef->disks[i].snapshot =3D=3D VIR_DOMAIN_SNAPSHOT_LOCATION= _NONE) @@ -1072,21 +1112,15 @@ qemuSnapshotDiskPrepare(virDomainObjPtr vm, if (qemuSnapshotDiskPrepareOne(vm, cfg, vm->def->disks[i], snapdef->disks + i, - data + ndata++, + snapctxt->dd + snapctxt->ndd++, blockNamedNodeData, reuse, asyncJob, - actions) < 0) - goto cleanup; + snapctxt->actions) < 0) + return NULL; } - *rdata =3D g_steal_pointer(&data); - *rndata =3D ndata; - ret =3D 0; - - cleanup: - qemuSnapshotDiskCleanup(data, ndata, vm, asyncJob); - return ret; + return g_steal_pointer(&snapctxt); } @@ -1159,42 +1193,34 @@ qemuSnapshotCreateActiveExternalDisks(virQEMUDriver= Ptr driver, qemuDomainAsyncJob asyncJob) { qemuDomainObjPrivatePtr priv =3D vm->privateData; - g_autoptr(virJSONValue) actions =3D NULL; int rc; - int ret =3D -1; size_t i; bool reuse =3D (flags & VIR_DOMAIN_SNAPSHOT_CREATE_REUSE_EXT) !=3D 0; - qemuSnapshotDiskDataPtr diskdata =3D NULL; - size_t ndiskdata =3D 0; + g_autoptr(qemuSnapshotDiskContext) snapctxt =3D NULL; if (virDomainObjCheckActive(vm) < 0) return -1; - actions =3D virJSONValueNewArray(); - /* prepare a list of objects to use in the vm definition so that we do= n't * have to roll back later */ - if (qemuSnapshotDiskPrepare(vm, snap, cfg, reuse, - blockNamedNodeData, asyncJob, - &diskdata, &ndiskdata, actions) < 0) - goto cleanup; + if (!(snapctxt =3D qemuSnapshotDiskPrepare(vm, snap, cfg, reuse, + blockNamedNodeData, asyncJob)= )) + return -1; /* check whether there's anything to do */ - if (ndiskdata =3D=3D 0) { - ret =3D 0; - goto cleanup; - } + if (snapctxt->ndd =3D=3D 0) + return 0; if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) - goto cleanup; + return -1; - rc =3D qemuMonitorTransaction(priv->mon, &actions); + rc =3D qemuMonitorTransaction(priv->mon, &snapctxt->actions); if (qemuDomainObjExitMonitor(driver, vm) < 0) rc =3D -1; - for (i =3D 0; i < ndiskdata; i++) { - qemuSnapshotDiskDataPtr dd =3D &diskdata[i]; + for (i =3D 0; i < snapctxt->ndd; i++) { + qemuSnapshotDiskDataPtr dd =3D snapctxt->dd + i; virDomainAuditDisk(vm, dd->disk->src, dd->src, "snapshot", rc >=3D= 0); @@ -1203,18 +1229,14 @@ qemuSnapshotCreateActiveExternalDisks(virQEMUDriver= Ptr driver, } if (rc < 0) - goto cleanup; + return -1; if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0 || (vm->newDef && virDomainDefSave(vm->newDef, driver->xmlopt, cfg->configDir) < 0)) - goto cleanup; - - ret =3D 0; + return -1; - cleanup: - qemuSnapshotDiskCleanup(diskdata, ndiskdata, vm, asyncJob); - return ret; + return 0; } --=20 2.26.2 From nobody Tue May 7 23:19:58 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 216.205.24.124 as permitted sender) client-ip=216.205.24.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 216.205.24.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=1600933098; cv=none; d=zohomail.com; s=zohoarc; b=Aofd4fsS6PUszl19iE8A/pD2b1D1JP9sK0pide0Isml7m+dUph7l2zL429PzD97B8nTyd+l6wps0YuxUBZ52k2RRx6YwVLfP2EUuQ3ANCBiLSXW1z7eXXQ9S/0nEaNtWM+PwwbvRm2KzwnWe+X/Azd5EmJOE9bUJMlbQo0/HmZM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1600933098; 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=M4g0rqY+3eFHAVCGsw3059ws38dzdWEvo0KRguOGJDs=; b=hkrUF24X8sN9+R4ac8vvMFpknXxVBXdyO6B+7Zjg1cj4ahCGUvZvzd37/rCf7gGjYI+Yunzg+NYUKvE8rUwI4nnE3ySYo71lTMC1p+scJ8kGlt7ynFxJHFusyuJqTAN2ZLcGSUei8BJuPhuNmBxTymRD8rwgP7lFCs/rBCCru1o= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 216.205.24.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 [216.205.24.124]) by mx.zohomail.com with SMTPS id 1600933098120662.1341743157806; Thu, 24 Sep 2020 00:38:18 -0700 (PDT) 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-569-W08J_gCaOXubdSl32mDs7w-1; Thu, 24 Sep 2020 03:38:14 -0400 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 4A93B64143; Thu, 24 Sep 2020 07:38:03 +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 203FD19930; Thu, 24 Sep 2020 07:38:03 +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 DBFDD181A07B; Thu, 24 Sep 2020 07:38:02 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 08O7c1Ec009148 for ; Thu, 24 Sep 2020 03:38:01 -0400 Received: by smtp.corp.redhat.com (Postfix) id 8082973684; Thu, 24 Sep 2020 07:38:01 +0000 (UTC) Received: from speedmetal.redhat.com (unknown [10.40.208.55]) by smtp.corp.redhat.com (Postfix) with ESMTP id D099373668 for ; Thu, 24 Sep 2020 07:38:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1600933096; 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=M4g0rqY+3eFHAVCGsw3059ws38dzdWEvo0KRguOGJDs=; b=Sl9tjYvXU5sDfd/Gc+72+eZFcVunu2NtWV1ANaQZHgJIvFqguFG9Z5kCvcjZySDtjVcNpr bDv6Pms1a1Su1OlMc70O+ps7k1KV3HyunctjyQKUkRuMaOXPf99qNwX1BYqZpV+TKEBzTX wiwI/nm4ZHYHtTzxb7fLeVzDlE+ixlc= X-MC-Unique: W08J_gCaOXubdSl32mDs7w-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 5/6] qemuSnapshotCreateActiveExternalDisks: Extract actual snapshot creation to 'qemuSnapshotDiskCreate' Date: Thu, 24 Sep 2020 09:37:50 +0200 Message-Id: <6ab465ed1b810ef1251c23de0de74d6cae0b058c.1600932998.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 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.84 on 10.5.11.23 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" Extract the code which invokes the monitor and finalizes the snapshot into a separate function for easier reuse. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_snapshot.c | 67 ++++++++++++++++++++++++---------------- 1 file changed, 40 insertions(+), 27 deletions(-) diff --git a/src/qemu/qemu_snapshot.c b/src/qemu/qemu_snapshot.c index b9b640058c..6fe925763e 100644 --- a/src/qemu/qemu_snapshot.c +++ b/src/qemu/qemu_snapshot.c @@ -1182,57 +1182,42 @@ qemuSnapshotDiskUpdateSource(virDomainObjPtr vm, } -/* The domain is expected to be locked and active. */ static int -qemuSnapshotCreateActiveExternalDisks(virQEMUDriverPtr driver, - virDomainObjPtr vm, - virDomainMomentObjPtr snap, - virHashTablePtr blockNamedNodeData, - unsigned int flags, - virQEMUDriverConfigPtr cfg, - qemuDomainAsyncJob asyncJob) +qemuSnapshotDiskCreate(qemuSnapshotDiskContextPtr snapctxt, + virQEMUDriverConfigPtr cfg) { - qemuDomainObjPrivatePtr priv =3D vm->privateData; - int rc; + qemuDomainObjPrivatePtr priv =3D snapctxt->vm->privateData; + virQEMUDriverPtr driver =3D priv->driver; size_t i; - bool reuse =3D (flags & VIR_DOMAIN_SNAPSHOT_CREATE_REUSE_EXT) !=3D 0; - g_autoptr(qemuSnapshotDiskContext) snapctxt =3D NULL; - - if (virDomainObjCheckActive(vm) < 0) - return -1; + int rc; - /* prepare a list of objects to use in the vm definition so that we do= n't - * have to roll back later */ - if (!(snapctxt =3D qemuSnapshotDiskPrepare(vm, snap, cfg, reuse, - blockNamedNodeData, asyncJob)= )) - return -1; /* check whether there's anything to do */ if (snapctxt->ndd =3D=3D 0) return 0; - if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0) + if (qemuDomainObjEnterMonitorAsync(driver, snapctxt->vm, snapctxt->asy= ncJob) < 0) return -1; rc =3D qemuMonitorTransaction(priv->mon, &snapctxt->actions); - if (qemuDomainObjExitMonitor(driver, vm) < 0) + if (qemuDomainObjExitMonitor(driver, snapctxt->vm) < 0) rc =3D -1; for (i =3D 0; i < snapctxt->ndd; i++) { qemuSnapshotDiskDataPtr dd =3D snapctxt->dd + i; - virDomainAuditDisk(vm, dd->disk->src, dd->src, "snapshot", rc >=3D= 0); + virDomainAuditDisk(snapctxt->vm, dd->disk->src, dd->src, "snapshot= ", rc >=3D 0); if (rc =3D=3D 0) - qemuSnapshotDiskUpdateSource(vm, dd); + qemuSnapshotDiskUpdateSource(snapctxt->vm, dd); } if (rc < 0) return -1; - if (virDomainObjSave(vm, driver->xmlopt, cfg->stateDir) < 0 || - (vm->newDef && virDomainDefSave(vm->newDef, driver->xmlopt, + if (virDomainObjSave(snapctxt->vm, driver->xmlopt, cfg->stateDir) < 0 = || + (snapctxt->vm->newDef && virDomainDefSave(snapctxt->vm->newDef, dr= iver->xmlopt, cfg->configDir) < 0)) return -1; @@ -1240,6 +1225,34 @@ qemuSnapshotCreateActiveExternalDisks(virQEMUDriverP= tr driver, } +/* The domain is expected to be locked and active. */ +static int +qemuSnapshotCreateActiveExternalDisks(virDomainObjPtr vm, + virDomainMomentObjPtr snap, + virHashTablePtr blockNamedNodeData, + unsigned int flags, + virQEMUDriverConfigPtr cfg, + qemuDomainAsyncJob asyncJob) +{ + bool reuse =3D (flags & VIR_DOMAIN_SNAPSHOT_CREATE_REUSE_EXT) !=3D 0; + g_autoptr(qemuSnapshotDiskContext) snapctxt =3D NULL; + + if (virDomainObjCheckActive(vm) < 0) + return -1; + + /* prepare a list of objects to use in the vm definition so that we do= n't + * have to roll back later */ + if (!(snapctxt =3D qemuSnapshotDiskPrepare(vm, snap, cfg, reuse, + blockNamedNodeData, asyncJob)= )) + return -1; + + if (qemuSnapshotDiskCreate(snapctxt, cfg) < 0) + return -1; + + return 0; +} + + static int qemuSnapshotCreateActiveExternal(virQEMUDriverPtr driver, virDomainObjPtr vm, @@ -1366,7 +1379,7 @@ qemuSnapshotCreateActiveExternal(virQEMUDriverPtr dri= ver, /* the domain is now paused if a memory snapshot was requested */ - if ((ret =3D qemuSnapshotCreateActiveExternalDisks(driver, vm, snap, + if ((ret =3D qemuSnapshotCreateActiveExternalDisks(vm, snap, blockNamedNodeData, f= lags, cfg, QEMU_ASYNC_JOB_SNAPSH= OT)) < 0) goto cleanup; --=20 2.26.2 From nobody Tue May 7 23:19:58 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=1600933146; cv=none; d=zohomail.com; s=zohoarc; b=d46GnzOuwCdy7ltUnReZKCOoSwAJHy2PnsEHkFQ/WfhCUJMIcFeb2ehX2I9sM/8T3jKhnPN10mu/IqJ7bv2PoLTfX6llS5imw/4Z3AqcshlPP5x5mFnkQvke5QOdmCdnpsUTCLBEyMG3oLB76nt5zbXjuj4Jc8Ljll5QfIxlOTw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1600933146; 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=3VTyBdqghNLJb2u2fcZAqIJw2tZrtWzSvEsN7S4F1L4=; b=QRsb+qls/wTRtaaSCuxpOOfswricKvifEEh7cV8CgDzpIDr1QDD5bONos+7nJhEkp0sQeXMGkpjfy6ZDA6QjKWEMX/MtXfoC8Lg/g6rrH6y8GSVY/+vVs1CtTLq7rvZ5Q2JxYGrv17iDG9JJZbzvSX6v7uS4fb2DOJlfx3ptjzE= 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 1600933146984976.6140349689983; Thu, 24 Sep 2020 00:39:06 -0700 (PDT) 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-241-BhDv96m5NnSfevvOY-XtfA-1; Thu, 24 Sep 2020 03:38:20 -0400 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 9C9DA802B67; Thu, 24 Sep 2020 07:38:14 +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 781E85578A; Thu, 24 Sep 2020 07:38:14 +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 440008C7A1; Thu, 24 Sep 2020 07:38:14 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 08O7c2tv009155 for ; Thu, 24 Sep 2020 03:38:02 -0400 Received: by smtp.corp.redhat.com (Postfix) id 8E90B7366A; Thu, 24 Sep 2020 07:38:02 +0000 (UTC) Received: from speedmetal.redhat.com (unknown [10.40.208.55]) by smtp.corp.redhat.com (Postfix) with ESMTP id ED9D273668 for ; Thu, 24 Sep 2020 07:38:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1600933145; 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=3VTyBdqghNLJb2u2fcZAqIJw2tZrtWzSvEsN7S4F1L4=; b=fn//j8av9j/kVA3cdTlJLY7XdSMo7NxRtwvhMxQ86v7UXcN2ygtvszhVmhZy7wZWEejULp +GUfNtxYwwDwWuYVdv+wpxoNByVMcqtxHYdB6cYbvYt3QZjcNXbPmw+fXCpNa2cFz2en/F o7ToDJnFAR0IpM35XvljU73aXxflQYo= X-MC-Unique: BhDv96m5NnSfevvOY-XtfA-1 From: Peter Krempa To: libvir-list@redhat.com Subject: [PATCH 6/6] qemuSnapshotDiskPrepare: rename to qemuSnapshotDiskPrepareActiveExternal Date: Thu, 24 Sep 2020 09:37:51 +0200 Message-Id: <8e09ee3c8e498a22702e78e7aea7a8105efcfd65.1600932998.git.pkrempa@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 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" Make it obvious that the snapshot is prepared for the active external snapshot case. Signed-off-by: Peter Krempa Reviewed-by: J=C3=A1n Tomko --- src/qemu/qemu_snapshot.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/qemu/qemu_snapshot.c b/src/qemu/qemu_snapshot.c index 6fe925763e..5fe9771205 100644 --- a/src/qemu/qemu_snapshot.c +++ b/src/qemu/qemu_snapshot.c @@ -1087,18 +1087,18 @@ qemuSnapshotDiskPrepareOne(virDomainObjPtr vm, /** - * qemuSnapshotDiskPrepare: + * qemuSnapshotDiskPrepareActiveExternal: * * Collects and prepares a list of structures that hold information about = disks * that are selected for the snapshot. */ static qemuSnapshotDiskContextPtr -qemuSnapshotDiskPrepare(virDomainObjPtr vm, - virDomainMomentObjPtr snap, - virQEMUDriverConfigPtr cfg, - bool reuse, - virHashTablePtr blockNamedNodeData, - qemuDomainAsyncJob asyncJob) +qemuSnapshotDiskPrepareActiveExternal(virDomainObjPtr vm, + virDomainMomentObjPtr snap, + virQEMUDriverConfigPtr cfg, + bool reuse, + virHashTablePtr blockNamedNodeData, + qemuDomainAsyncJob asyncJob) { g_autoptr(qemuSnapshotDiskContext) snapctxt =3D NULL; size_t i; @@ -1242,8 +1242,8 @@ qemuSnapshotCreateActiveExternalDisks(virDomainObjPtr= vm, /* prepare a list of objects to use in the vm definition so that we do= n't * have to roll back later */ - if (!(snapctxt =3D qemuSnapshotDiskPrepare(vm, snap, cfg, reuse, - blockNamedNodeData, asyncJob)= )) + if (!(snapctxt =3D qemuSnapshotDiskPrepareActiveExternal(vm, snap, cfg= , reuse, + blockNamedNodeD= ata, asyncJob))) return -1; if (qemuSnapshotDiskCreate(snapctxt, cfg) < 0) --=20 2.26.2