mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-07 21:45:22 +00:00
4c33c5568c
Now that we've switched to the simple handling, the first thing that can be massively simplified is checkpoint deletion. We now need to only go through the backing chain and find the appropriately named bitmaps and delete them, no complex lookups or merging. Note that compared to other functions this deletes the bitmap in all layers compared to others where we expect only exactly 1 bitmap of a name in the backing chain to prevent potential problems. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>
82 lines
2.7 KiB
C
82 lines
2.7 KiB
C
/*
|
|
* qemu_checkpoint.h: Implementation and handling of checkpoint
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library. If not, see
|
|
* <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "virconftypes.h"
|
|
#include "datatypes.h"
|
|
#include "qemu_conf.h"
|
|
|
|
virDomainObjPtr
|
|
qemuDomObjFromCheckpoint(virDomainCheckpointPtr checkpoint);
|
|
|
|
virDomainMomentObjPtr
|
|
qemuCheckpointObjFromCheckpoint(virDomainObjPtr vm,
|
|
virDomainCheckpointPtr checkpoint);
|
|
|
|
virDomainMomentObjPtr
|
|
qemuCheckpointObjFromName(virDomainObjPtr vm,
|
|
const char *name);
|
|
|
|
int
|
|
qemuCheckpointDiscardAllMetadata(virQEMUDriverPtr driver,
|
|
virDomainObjPtr vm);
|
|
|
|
virDomainCheckpointPtr
|
|
qemuCheckpointCreateXML(virDomainPtr domain,
|
|
virDomainObjPtr vm,
|
|
const char *xmlDesc,
|
|
unsigned int flags);
|
|
|
|
|
|
char *
|
|
qemuCheckpointGetXMLDesc(virDomainObjPtr vm,
|
|
virDomainCheckpointPtr checkpoint,
|
|
unsigned int flags);
|
|
|
|
int
|
|
qemuCheckpointDelete(virDomainObjPtr vm,
|
|
virDomainCheckpointPtr checkpoint,
|
|
unsigned int flags);
|
|
|
|
int
|
|
qemuCheckpointCreateCommon(virQEMUDriverPtr driver,
|
|
virDomainObjPtr vm,
|
|
virDomainCheckpointDefPtr *def,
|
|
virJSONValuePtr *actions,
|
|
virDomainMomentObjPtr *chk);
|
|
|
|
int
|
|
qemuCheckpointCreateFinalize(virQEMUDriverPtr driver,
|
|
virDomainObjPtr vm,
|
|
virQEMUDriverConfigPtr cfg,
|
|
virDomainMomentObjPtr chk,
|
|
bool update_current);
|
|
|
|
void
|
|
qemuCheckpointRollbackMetadata(virDomainObjPtr vm,
|
|
virDomainMomentObjPtr chk);
|
|
|
|
int
|
|
qemuCheckpointDiscardDiskBitmaps(virStorageSourcePtr src,
|
|
virHashTablePtr blockNamedNodeData,
|
|
const char *delbitmap,
|
|
virJSONValuePtr actions,
|
|
const char *diskdst,
|
|
GSList **reopenimages);
|