virDomainObjPtr vm,
virDomainMomentObjPtr snap,
unsigned int flags,
+ virQEMUDriverConfigPtr cfg,
qemuDomainAsyncJob asyncJob)
{
qemuDomainObjPrivatePtr priv = vm->privateData;
size_t i;
bool persist = false;
bool reuse = (flags & VIR_DOMAIN_SNAPSHOT_CREATE_REUSE_EXT) != 0;
- virQEMUDriverConfigPtr cfg = NULL;
qemuDomainSnapshotDiskDataPtr diskdata = NULL;
virErrorPtr orig_err = NULL;
virDomainSnapshotDefPtr snapdef = virDomainSnapshotObjGetDef(snap);
if (!(diskdata = qemuDomainSnapshotDiskDataCollect(driver, vm, snap, reuse)))
goto cleanup;
- cfg = virQEMUDriverGetConfig(driver);
-
/* Based on earlier qemuDomainSnapshotPrepare, all disks in this list are
* now either VIR_DOMAIN_SNAPSHOT_LOCATION_NONE, or
* VIR_DOMAIN_SNAPSHOT_LOCATION_EXTERNAL with a valid file name and
cleanup:
qemuDomainSnapshotDiskDataFree(diskdata, snapdef->ndisks, driver, vm);
virJSONValueFree(actions);
- virObjectUnref(cfg);
if (orig_err) {
virSetError(orig_err);
qemuDomainSnapshotCreateActiveExternal(virQEMUDriverPtr driver,
virDomainObjPtr vm,
virDomainMomentObjPtr snap,
+ virQEMUDriverConfigPtr cfg,
unsigned int flags)
{
virObjectEventPtr event;
bool memory_unlink = false;
int thaw = 0; /* 1 if freeze succeeded, -1 if freeze failed */
bool pmsuspended = false;
- virQEMUDriverConfigPtr cfg = NULL;
int compressed;
char *compressedpath = NULL;
virQEMUSaveDataPtr data = NULL;
JOB_MASK(QEMU_JOB_SUSPEND) |
JOB_MASK(QEMU_JOB_MIGRATION_OP)));
- cfg = virQEMUDriverGetConfig(driver);
if ((compressed = qemuGetCompressionProgram(cfg->snapshotImageFormat,
&compressedpath,
"snapshot", false)) < 0)
/* the domain is now paused if a memory snapshot was requested */
- if ((ret = qemuDomainSnapshotCreateDiskActive(driver, vm, snap, flags,
+ if ((ret = qemuDomainSnapshotCreateDiskActive(driver, vm, snap, flags, cfg,
QEMU_ASYNC_JOB_SNAPSHOT)) < 0)
goto cleanup;
virQEMUSaveDataFree(data);
VIR_FREE(xml);
VIR_FREE(compressedpath);
- virObjectUnref(cfg);
if (memory_unlink && ret < 0)
unlink(snapdef->file);
virDomainSnapshotObjGetDef(snap)->memory == VIR_DOMAIN_SNAPSHOT_LOCATION_EXTERNAL) {
/* external full system or disk snapshot */
if (qemuDomainSnapshotCreateActiveExternal(driver,
- vm, snap, flags) < 0)
+ vm, snap, cfg, flags) < 0)
goto endjob;
} else {
/* internal full system */