}
-/* Locate an appropriate 'qemu-img' binary. */
-const char *
-qemuFindQemuImgBinary(virQEMUDriver *driver)
-{
- if (!driver->qemuImgBinary)
- virReportError(VIR_ERR_INTERNAL_ERROR,
- "%s", _("unable to find qemu-img"));
-
- return driver->qemuImgBinary;
-}
-
int
qemuDomainSnapshotWriteMetadata(virDomainObj *vm,
virDomainMomentObj *snapshot,
int ndisks)
{
virDomainSnapshotDef *snapdef = virDomainSnapshotObjGetDef(snap);
- const char *qemuimgbin;
size_t i;
bool skipped = false;
- qemuimgbin = qemuFindQemuImgBinary(driver);
- if (qemuimgbin == NULL) {
- /* qemuFindQemuImgBinary set the error */
- return -1;
- }
-
for (i = 0; i < ndisks; i++) {
- g_autoptr(virCommand) cmd = virCommandNewArgList(qemuimgbin, "snapshot",
+ g_autoptr(virCommand) cmd = virCommandNewArgList("qemu-img", "snapshot",
op, snap->def->name, NULL);
int format = virDomainDiskGetFormat(def->disks[i]);
/**
* qemuSnapshotCreateQcow2Files:
- * @driver: QEMU driver
* @def: domain definition
* @snapdef: snapshot definition
* @created: bitmap to store which disks were created
* Returns 0 on success, -1 on error.
*/
static int
-qemuSnapshotCreateQcow2Files(virQEMUDriver *driver,
- virDomainDef *def,
+qemuSnapshotCreateQcow2Files(virDomainDef *def,
virDomainSnapshotDef *snapdef,
virBitmap *created)
{
size_t i;
- const char *qemuImgPath;
g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER;
virDomainSnapshotDiskDef *snapdisk = NULL;
virDomainDiskDef *defdisk = NULL;
- if (!(qemuImgPath = qemuFindQemuImgBinary(driver)))
- return -1;
-
for (i = 0; i < snapdef->ndisks; i++) {
g_autoptr(virCommand) cmd = NULL;
snapdisk = &(snapdef->disks[i]);
return -1;
/* creates cmd line args: qemu-img create -f qcow2 -o */
- if (!(cmd = virCommandNewArgList(qemuImgPath,
+ if (!(cmd = virCommandNewArgList("qemu-img",
"create",
"-f",
virStorageFileFormatTypeToString(snapdisk->src->format),
/* If reuse is true, then qemuSnapshotPrepare already
* ensured that the new files exist, and it was up to the user to
* create them correctly. */
- if (!reuse && qemuSnapshotCreateQcow2Files(driver, vm->def, snapdef, created) < 0)
+ if (!reuse && qemuSnapshotCreateQcow2Files(vm->def, snapdef, created) < 0)
goto cleanup;
/* update disk definitions */
/**
* qemuSnapshotRevertExternalInactive:
- * @vm: domain object
* @tmpsnapdef: temporary snapshot definition
* @domdef: offline domain definition
*
* Returns 0 on success, -1 on error.
*/
static int
-qemuSnapshotRevertExternalInactive(virDomainObj *vm,
- virDomainSnapshotDef *tmpsnapdef,
+qemuSnapshotRevertExternalInactive(virDomainSnapshotDef *tmpsnapdef,
virDomainDef *domdef)
{
- virQEMUDriver *driver = QEMU_DOMAIN_PRIVATE(vm)->driver;
g_autoptr(virBitmap) created = NULL;
int ret = -1;
created = virBitmapNew(tmpsnapdef->ndisks);
- if (qemuSnapshotCreateQcow2Files(driver, domdef, tmpsnapdef, created) < 0)
+ if (qemuSnapshotCreateQcow2Files(domdef, tmpsnapdef, created) < 0)
goto cleanup;
if (qemuSnapshotDomainDefUpdateDisk(domdef, tmpsnapdef, false) < 0)
return -1;
}
- if (qemuSnapshotRevertExternalInactive(vm, tmpsnapdef,
+ if (qemuSnapshotRevertExternalInactive(tmpsnapdef,
*inactiveConfig) < 0) {
return -1;
}
static void
-qemuSnapshotUpdateBackingStore(virDomainObj *vm,
- qemuSnapshotDeleteExternalData *data)
+qemuSnapshotUpdateBackingStore(qemuSnapshotDeleteExternalData *data)
{
GSList *cur = NULL;
- const char *qemuImgPath;
- virQEMUDriver *driver = QEMU_DOMAIN_PRIVATE(vm)->driver;
-
- if (!(qemuImgPath = qemuFindQemuImgBinary(driver)))
- return;
for (cur = data->disksWithBacking; cur; cur = g_slist_next(cur)) {
struct _qemuSnapshotDisksWithBackingStoreData *backingData = cur->data;
g_autoptr(virCommand) cmd = NULL;
/* creates cmd line args: qemu-img create -f qcow2 -o */
- if (!(cmd = virCommandNewArgList(qemuImgPath,
+ if (!(cmd = virCommandNewArgList("qemu-img",
"rebase",
"-u",
"-F",
qemuBlockJobSyncEnd(vm, data->job, VIR_ASYNC_JOB_SNAPSHOT);
- qemuSnapshotUpdateBackingStore(vm, data);
+ qemuSnapshotUpdateBackingStore(data);
if (qemuSnapshotSetInvalid(vm, data->parentSnap, data->snapDisk, false) < 0)
goto error;