static int
-qemuMigrationDstPrecreateDisk(virConnectPtr conn,
+qemuMigrationDstPrecreateDisk(virConnectPtr *conn,
virDomainDiskDefPtr disk,
unsigned long long capacity)
{
*volName = '\0';
volName++;
- if (!(pool = virStoragePoolLookupByTargetPath(conn, basePath)))
+ if (!*conn) {
+ if (!(*conn = virGetConnectStorage()))
+ goto cleanup;
+ }
+
+ if (!(pool = virStoragePoolLookupByTargetPath(*conn, basePath)))
goto cleanup;
format = virStorageFileFormatTypeToString(disk->src->format);
if (disk->src->format == VIR_STORAGE_FILE_QCOW2)
break;
case VIR_STORAGE_TYPE_VOLUME:
- if (!(pool = virStoragePoolLookupByName(conn, disk->src->srcpool->pool)))
+ if (!*conn) {
+ if (!(*conn = virGetConnectStorage()))
+ goto cleanup;
+ }
+
+ if (!(pool = virStoragePoolLookupByName(*conn, disk->src->srcpool->pool)))
goto cleanup;
format = virStorageFileFormatTypeToString(disk->src->format);
volName = disk->src->srcpool->volume;
{
int ret = -1;
size_t i = 0;
- virConnectPtr conn;
+ virConnectPtr conn = NULL;
if (!nbd || !nbd->ndisks)
return 0;
- if (!(conn = virGetConnectStorage()))
- return -1;
-
for (i = 0; i < nbd->ndisks; i++) {
virDomainDiskDefPtr disk;
const char *diskSrcPath;
VIR_DEBUG("Proceeding with disk source %s", NULLSTR(diskSrcPath));
- if (qemuMigrationDstPrecreateDisk(conn, disk, nbd->disks[i].capacity) < 0)
+ if (qemuMigrationDstPrecreateDisk(&conn,
+ disk, nbd->disks[i].capacity) < 0)
goto cleanup;
}