From nobody Tue Feb 10 05:27:00 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1600170172; cv=none; d=zohomail.com; s=zohoarc; b=Igvpxn8gGB/GN37lD1EnkSg2Q3WyC+563xwPb7XliV+pNYqvKtDg6yzBEnYEIH6iSKENoAxZGfAj0ey+fKAvlapVFIJ9J5pFRd5h7LP7j79+3kBY/J3xOn6+y2p1w4CdOETjOrolU413vUXvtl8a0qxI2tO/CTxwS2u8q0oCpB4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1600170172; h=Content-Type:Content-Transfer-Encoding:Cc: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=DtuxTbvivpopwMih3T8OTF9gKc2VvboMBy2HDvvfgTY=; b=k/8AiZmNOiFruAP9WUJw5j3An04LKiByuuW88z+SOiJCL1rCcRJm01LV9AYHZcG6YDVJezrBq7Ks4d0fufFZ4xS3JEwT0TZx1+52GoIz3udovCPWACVIKImklCxmQ2d3xUzuCdQPEP5MJmFxLcIZX75McdVjPdf08rHBuM50HkQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1600170172833642.8514130956873; Tue, 15 Sep 2020 04:42:52 -0700 (PDT) Received: from localhost ([::1]:40774 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kI9MJ-0000aq-D6 for importer@patchew.org; Tue, 15 Sep 2020 07:42:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:35752) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kI9Fi-0001Hz-KJ for qemu-devel@nongnu.org; Tue, 15 Sep 2020 07:36:02 -0400 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:23224) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kI9Fg-0002v7-Km for qemu-devel@nongnu.org; Tue, 15 Sep 2020 07:36:02 -0400 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-226-Jf9LklmLNaqA63XDwZLG1w-1; Tue, 15 Sep 2020 07:35:58 -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 EA8A5420EC; Tue, 15 Sep 2020 11:35:56 +0000 (UTC) Received: from localhost.localdomain.com (unknown [10.36.110.68]) by smtp.corp.redhat.com (Postfix) with ESMTP id 42EBB747B0; Tue, 15 Sep 2020 11:35:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1600169759; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=DtuxTbvivpopwMih3T8OTF9gKc2VvboMBy2HDvvfgTY=; b=jBx/J2xF6wxh6F5PVsGnfF1O7yrrbSV9AxufWbvrgtueJkie51HSnmsehvtxQ5wG3JoRpq u1YWryEp4jhEyhEboKVrR/km2JlKV/xYAg23MzZng5EvboogFyKtm09pDNWEH0BBmzhEn1 BecWy4SsqygWbBc7spZvZ8DPQFzYvuk= X-MC-Unique: Jf9LklmLNaqA63XDwZLG1w-1 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: qemu-devel@nongnu.org Subject: [PATCH v4 5/9] migration: control whether snapshots are ovewritten Date: Tue, 15 Sep 2020 12:35:19 +0100 Message-Id: <20200915113523.2520317-6-berrange@redhat.com> In-Reply-To: <20200915113523.2520317-1-berrange@redhat.com> References: <20200915113523.2520317-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=berrange@redhat.com X-Mimecast-Spam-Score: 0.002 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=63.128.21.124; envelope-from=berrange@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/09/15 02:23:19 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -50 X-Spam_score: -5.1 X-Spam_bar: ----- X-Spam_report: (-5.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-2.999, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , Peter Krempa , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , "Denis V. Lunev" , qemu-block@nongnu.org, Juan Quintela , "Dr. David Alan Gilbert" , Markus Armbruster , Pavel Dovgalyuk , Paolo Bonzini , Max Reitz , John Snow Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) The traditional HMP "savevm" command will overwrite an existing snapshot if it already exists with the requested name. This new flag allows this to be controlled allowing for safer behaviour with a future QMP command. Signed-off-by: Daniel P. Berrang=C3=A9 --- include/migration/snapshot.h | 2 +- migration/savevm.c | 4 ++-- monitor/hmp-cmds.c | 2 +- replay/replay-snapshot.c | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/include/migration/snapshot.h b/include/migration/snapshot.h index c85b6ec75b..d7db1174ef 100644 --- a/include/migration/snapshot.h +++ b/include/migration/snapshot.h @@ -15,7 +15,7 @@ #ifndef QEMU_MIGRATION_SNAPSHOT_H #define QEMU_MIGRATION_SNAPSHOT_H =20 -int save_snapshot(const char *name, Error **errp); +int save_snapshot(const char *name, bool overwrite, Error **errp); int load_snapshot(const char *name, Error **errp); =20 #endif diff --git a/migration/savevm.c b/migration/savevm.c index 76972d69b0..2025e3e579 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -2658,7 +2658,7 @@ int qemu_load_device_state(QEMUFile *f) return 0; } =20 -int save_snapshot(const char *name, Error **errp) +int save_snapshot(const char *name, bool overwrite, Error **errp) { BlockDriverState *bs; QEMUSnapshotInfo sn1, *sn =3D &sn1, old_sn1, *old_sn =3D &old_sn1; @@ -2685,7 +2685,7 @@ int save_snapshot(const char *name, Error **errp) } =20 /* Delete old snapshots of the same name */ - if (name) { + if (name && overwrite) { if (bdrv_all_delete_snapshot(name, false, NULL, errp) < 0) { return ret; } diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c index 98c98ae182..c1b8533d0c 100644 --- a/monitor/hmp-cmds.c +++ b/monitor/hmp-cmds.c @@ -1131,7 +1131,7 @@ void hmp_savevm(Monitor *mon, const QDict *qdict) { Error *err =3D NULL; =20 - save_snapshot(qdict_get_try_str(qdict, "name"), &err); + save_snapshot(qdict_get_try_str(qdict, "name"), true, &err); hmp_handle_error(mon, err); } =20 diff --git a/replay/replay-snapshot.c b/replay/replay-snapshot.c index e26fa4c892..8e7ff97d11 100644 --- a/replay/replay-snapshot.c +++ b/replay/replay-snapshot.c @@ -77,7 +77,7 @@ void replay_vmstate_init(void) =20 if (replay_snapshot) { if (replay_mode =3D=3D REPLAY_MODE_RECORD) { - if (save_snapshot(replay_snapshot, &err) !=3D 0) { + if (save_snapshot(replay_snapshot, true, &err) !=3D 0) { error_report_err(err); error_report("Could not create snapshot for icount record"= ); exit(1); --=20 2.26.2