return qemuMigrationDstPrepareDirect(driver, dconn,
NULL, 0, NULL, NULL, /* No cookies */
uri_in, uri_out,
- &def, origname, NULL, 0, NULL, 0, NULL,
+ &def, origname, NULL, NULL, 0, NULL,
migParams, flags);
}
* Consume any cookie we were able to decode though
*/
ret = qemuMigrationSrcPerform(driver, dom->conn, vm, NULL,
- NULL, dconnuri, uri, NULL, NULL, 0, NULL, 0,
+ NULL, dconnuri, uri, NULL, NULL, NULL, 0,
NULL,
migParams, cookie, cookielen,
NULL, NULL, /* No output cookies in v2 */
}
return qemuMigrationSrcBegin(domain->conn, vm, xmlin, dname,
- cookieout, cookieoutlen, 0, NULL, flags);
+ cookieout, cookieoutlen, NULL, flags);
}
static char *
const char *xmlin = NULL;
const char *dname = NULL;
g_autofree const char **migrate_disks = NULL;
- int nmigrate_disks;
virDomainObj *vm;
virCheckFlags(QEMU_MIGRATION_FLAGS, NULL);
&dname) < 0)
return NULL;
- nmigrate_disks = virTypedParamsGetStringList(params, nparams,
- VIR_MIGRATE_PARAM_MIGRATE_DISKS,
- &migrate_disks);
-
- if (nmigrate_disks < 0)
- return NULL;
+ virTypedParamsGetStringList(params, nparams, VIR_MIGRATE_PARAM_MIGRATE_DISKS,
+ &migrate_disks);
if (!(vm = qemuDomainObjFromDomain(domain)))
return NULL;
return qemuMigrationSrcBegin(domain->conn, vm, xmlin, dname,
cookieout, cookieoutlen,
- nmigrate_disks, migrate_disks, flags);
+ migrate_disks, flags);
}
cookiein, cookieinlen,
cookieout, cookieoutlen,
uri_in, uri_out,
- &def, origname, NULL, 0, NULL, 0,
+ &def, origname, NULL, NULL, 0,
NULL, migParams, flags);
}
const char *uri_in = NULL;
const char *listenAddress = NULL;
int nbdPort = 0;
- int nmigrate_disks;
g_autofree const char **migrate_disks = NULL;
g_autofree char *origname = NULL;
g_autoptr(qemuMigrationParams) migParams = NULL;
&nbdPort) < 0)
return -1;
- nmigrate_disks = virTypedParamsGetStringList(params, nparams,
- VIR_MIGRATE_PARAM_MIGRATE_DISKS,
- &migrate_disks);
-
- if (nmigrate_disks < 0)
- return -1;
+ virTypedParamsGetStringList(params, nparams, VIR_MIGRATE_PARAM_MIGRATE_DISKS,
+ &migrate_disks);
if (!(migParams = qemuMigrationParamsFromFlags(params, nparams, flags,
QEMU_MIGRATION_DESTINATION)))
return -1;
if (flags & (VIR_MIGRATE_NON_SHARED_DISK | VIR_MIGRATE_NON_SHARED_INC) ||
- nmigrate_disks > 0) {
+ migrate_disks) {
if (uri_in && STRPREFIX(uri_in, "unix:") && !nbdURI) {
virReportError(VIR_ERR_INVALID_ARG, "%s",
_("NBD URI must be supplied when migration URI uses UNIX transport method"));
cookieout, cookieoutlen,
uri_in, uri_out,
&def, origname, listenAddress,
- nmigrate_disks, migrate_disks, nbdPort,
+ migrate_disks, nbdPort,
nbdURI, migParams, flags);
}
goto cleanup;
ret = qemuMigrationSrcPerform(driver, dom->conn, vm, xmlin, NULL,
- dconnuri, uri, NULL, NULL, 0, NULL, 0,
+ dconnuri, uri, NULL, NULL, NULL, 0,
NULL, migParams,
cookiein, cookieinlen,
cookieout, cookieoutlen,
const char *uri = NULL;
const char *graphicsuri = NULL;
const char *listenAddress = NULL;
- int nmigrate_disks;
g_autofree const char **migrate_disks = NULL;
unsigned long long bandwidth = 0;
int nbdPort = 0;
}
}
- nmigrate_disks = virTypedParamsGetStringList(params, nparams,
- VIR_MIGRATE_PARAM_MIGRATE_DISKS,
- &migrate_disks);
-
- if (nmigrate_disks < 0)
- goto cleanup;
+ virTypedParamsGetStringList(params, nparams, VIR_MIGRATE_PARAM_MIGRATE_DISKS,
+ &migrate_disks);
if (flags & (VIR_MIGRATE_NON_SHARED_DISK | VIR_MIGRATE_NON_SHARED_INC) ||
- nmigrate_disks > 0) {
+ migrate_disks) {
if (uri && STRPREFIX(uri, "unix:") && !nbdURI) {
virReportError(VIR_ERR_INVALID_ARG, "%s",
_("NBD URI must be supplied when migration URI uses UNIX transport method"));
ret = qemuMigrationSrcPerform(driver, dom->conn, vm, dom_xml, persist_xml,
dconnuri, uri, graphicsuri, listenAddress,
- nmigrate_disks, migrate_disks, nbdPort,
+ migrate_disks, nbdPort,
nbdURI, migParams,
cookiein, cookieinlen, cookieout, cookieoutlen,
flags, dname, bandwidth, true);
static bool
qemuMigrationAnyCopyDisk(virDomainDiskDef const *disk,
- size_t nmigrate_disks G_GNUC_UNUSED,
const char **migrate_disks)
{
/* List of disks to migrate takes priority if present */
static bool
qemuMigrationHasAnyStorageMigrationDisks(virDomainDef *def,
- const char **migrate_disks,
- size_t nmigrate_disks)
+ const char **migrate_disks)
{
size_t i;
for (i = 0; i < def->ndisks; i++) {
- if (qemuMigrationAnyCopyDisk(def->disks[i], nmigrate_disks, migrate_disks))
+ if (qemuMigrationAnyCopyDisk(def->disks[i], migrate_disks))
return true;
}
static int
qemuMigrationDstPrepareStorage(virDomainObj *vm,
qemuMigrationCookieNBD *nbd,
- size_t nmigrate_disks,
const char **migrate_disks,
bool incremental)
{
}
/* Skip disks we don't want to migrate. */
- if (!qemuMigrationAnyCopyDisk(disk, nmigrate_disks, migrate_disks))
+ if (!qemuMigrationAnyCopyDisk(disk, migrate_disks))
continue;
switch (virStorageSourceGetActualType(disk->src)) {
qemuMigrationDstStartNBDServer(virQEMUDriver *driver,
virDomainObj *vm,
const char *listenAddr,
- size_t nmigrate_disks,
const char **migrate_disks,
int nbdPort,
const char *nbdURI,
g_autofree char *diskAlias = NULL;
/* check whether disk should be migrated */
- if (!qemuMigrationAnyCopyDisk(disk, nmigrate_disks, migrate_disks))
+ if (!qemuMigrationAnyCopyDisk(disk, migrate_disks))
continue;
if (disk->src->readonly || virStorageSourceIsEmpty(disk->src)) {
qemuMigrationCookie *mig,
const char *host,
unsigned long speed,
- size_t nmigrate_disks,
const char **migrate_disks,
virConnectPtr dconn,
const char *tlsAlias,
virDomainDiskDef *disk = vm->def->disks[i];
/* check whether disk should be migrated */
- if (!qemuMigrationAnyCopyDisk(disk, nmigrate_disks, migrate_disks))
+ if (!qemuMigrationAnyCopyDisk(disk, migrate_disks))
continue;
if (qemuMigrationSrcNBDStorageCopyOne(vm, disk, host, port,
static bool
qemuMigrationSrcIsSafe(virDomainDef *def,
virQEMUCaps *qemuCaps,
- size_t nmigrate_disks,
const char **migrate_disks,
unsigned int flags)
/* Disks which are migrated by qemu are safe too. */
if (storagemigration &&
- qemuMigrationAnyCopyDisk(disk, nmigrate_disks, migrate_disks))
+ qemuMigrationAnyCopyDisk(disk, migrate_disks))
continue;
/* However, disks on local FS (e.g. ext4) are not safe. */
static int
qemuMigrationSrcBeginPhaseBlockDirtyBitmaps(qemuMigrationCookie *mig,
virDomainObj *vm,
- const char **migrate_disks,
- size_t nmigrate_disks)
+ const char **migrate_disks)
{
GSList *disks = NULL;
if (!nodedata)
continue;
- if (!qemuMigrationAnyCopyDisk(diskdef, nmigrate_disks, migrate_disks))
+ if (!qemuMigrationAnyCopyDisk(diskdef, migrate_disks))
continue;
for (j = 0; j < nodedata->nbitmaps; j++) {
int *cookieoutlen,
unsigned int cookieFlags,
const char **migrate_disks,
- size_t nmigrate_disks,
unsigned int flags)
{
qemuDomainObjPrivate *priv = vm->privateData;
if (cookieFlags & QEMU_MIGRATION_COOKIE_NBD &&
virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_MIGRATION_PARAM_BLOCK_BITMAP_MAPPING) &&
- qemuMigrationSrcBeginPhaseBlockDirtyBitmaps(mig, vm, migrate_disks,
- nmigrate_disks) < 0)
+ qemuMigrationSrcBeginPhaseBlockDirtyBitmaps(mig, vm, migrate_disks) < 0)
return NULL;
if (qemuMigrationCookieFormat(mig, driver, vm,
const char *dname,
char **cookieout,
int *cookieoutlen,
- size_t nmigrate_disks,
const char **migrate_disks,
unsigned int flags)
{
return NULL;
if (!(flags & (VIR_MIGRATE_UNSAFE | VIR_MIGRATE_OFFLINE)) &&
- !qemuMigrationSrcIsSafe(vm->def, priv->qemuCaps,
- nmigrate_disks, migrate_disks, flags))
+ !qemuMigrationSrcIsSafe(vm->def, priv->qemuCaps, migrate_disks, flags))
return NULL;
if (flags & VIR_MIGRATE_POSTCOPY &&
priv->nbdPort = 0;
- if (qemuMigrationHasAnyStorageMigrationDisks(vm->def,
- migrate_disks,
- nmigrate_disks))
+ if (qemuMigrationHasAnyStorageMigrationDisks(vm->def, migrate_disks))
cookieFlags |= QEMU_MIGRATION_COOKIE_NBD;
} else {
if (migrate_disks) {
return qemuMigrationSrcBeginXML(vm, xmlin,
cookieout, cookieoutlen, cookieFlags,
- migrate_disks, nmigrate_disks,
- flags);
+ migrate_disks, flags);
}
}
return qemuMigrationSrcBeginXML(vm, xmlin,
- cookieout, cookieoutlen, 0, NULL, 0, flags);
+ cookieout, cookieoutlen, 0, NULL, flags);
}
const char *dname,
char **cookieout,
int *cookieoutlen,
- size_t nmigrate_disks,
const char **migrate_disks,
unsigned int flags)
{
if (!(xml = qemuMigrationSrcBeginPhase(driver, vm, xmlin, dname,
cookieout, cookieoutlen,
- nmigrate_disks, migrate_disks, flags)))
+ migrate_disks, flags)))
goto endjob;
if ((flags & VIR_MIGRATE_CHANGE_PROTECTION)) {
const char *protocol,
unsigned short port,
const char *listenAddress,
- size_t nmigrate_disks,
const char **migrate_disks,
int nbdPort,
const char *nbdURI,
goto error;
}
- if (qemuMigrationDstPrepareStorage(vm, mig->nbd,
- nmigrate_disks, migrate_disks,
+ if (qemuMigrationDstPrepareStorage(vm, mig->nbd, migrate_disks,
!!(flags & VIR_MIGRATE_NON_SHARED_INC)) < 0)
goto error;
}
if (qemuMigrationDstStartNBDServer(driver, vm, incoming->address,
- nmigrate_disks, migrate_disks,
+ migrate_disks,
nbdPort, nbdURI,
nbdTLSAlias) < 0) {
goto error;
unsigned short port,
bool autoPort,
const char *listenAddress,
- size_t nmigrate_disks,
const char **migrate_disks,
int nbdPort,
const char *nbdURI,
if (!(flags & VIR_MIGRATE_OFFLINE)) {
if (qemuMigrationDstPrepareActive(driver, vm, dconn, mig, st,
protocol, port, listenAddress,
- nmigrate_disks, migrate_disks,
+ migrate_disks,
nbdPort, nbdURI,
migParams, flags) < 0) {
goto stopjob;
unsigned short port,
bool autoPort,
const char *listenAddress,
- size_t nmigrate_disks,
const char **migrate_disks,
int nbdPort,
const char *nbdURI,
cookieout, cookieoutlen,
def, origname, st, protocol,
port, autoPort, listenAddress,
- nmigrate_disks, migrate_disks,
+ migrate_disks,
nbdPort, nbdURI,
migParams, flags);
}
return qemuMigrationDstPrepareAny(driver, dconn, cookiein, cookieinlen,
cookieout, cookieoutlen, def, origname,
- st, NULL, 0, false, NULL, 0, NULL, 0,
+ st, NULL, 0, false, NULL, NULL, 0,
NULL, migParams, flags);
}
virDomainDef **def,
const char *origname,
const char *listenAddress,
- size_t nmigrate_disks,
const char **migrate_disks,
int nbdPort,
const char *nbdURI,
cookieout, cookieoutlen, def, origname,
NULL, uri ? uri->scheme : "tcp",
port, autoPort, listenAddress,
- nmigrate_disks, migrate_disks, nbdPort,
+ migrate_disks, nbdPort,
nbdURI, migParams, flags);
cleanup:
if (ret != 0) {
qemuMigrationSpec *spec,
virConnectPtr dconn,
const char *graphicsuri,
- size_t nmigrate_disks,
const char **migrate_disks,
qemuMigrationParams *migParams,
const char *nbdURI)
if (storageMigration)
storageMigration = qemuMigrationHasAnyStorageMigrationDisks(vm->def,
- migrate_disks,
- nmigrate_disks);
+ migrate_disks);
if (storageMigration) {
cookieFlags |= QEMU_MIGRATION_COOKIE_NBD;
if (qemuMigrationSrcNBDStorageCopy(driver, vm, mig,
host,
priv->migMaxBandwidth,
- nmigrate_disks,
migrate_disks,
dconn, tlsAlias, tlsHostname,
nbdURI, flags) < 0) {
unsigned long resource,
virConnectPtr dconn,
const char *graphicsuri,
- size_t nmigrate_disks,
const char **migrate_disks,
qemuMigrationParams *migParams,
const char *nbdURI)
ret = qemuMigrationSrcRun(driver, vm, xmlin, persist_xml, cookiein, cookieinlen,
cookieout, cookieoutlen, flags, resource,
&spec, dconn, graphicsuri,
- nmigrate_disks, migrate_disks,
+ migrate_disks,
migParams, nbdURI);
}
unsigned long resource,
virConnectPtr dconn,
const char *graphicsuri,
- size_t nmigrate_disks,
const char **migrate_disks,
qemuMigrationParams *migParams)
{
ret = qemuMigrationSrcRun(driver, vm, xmlin, persist_xml, cookiein, cookieinlen,
cookieout, cookieoutlen, flags, resource, &spec,
- dconn, graphicsuri, nmigrate_disks, migrate_disks,
+ dconn, graphicsuri, migrate_disks,
migParams, NULL);
cleanup:
ret = qemuMigrationSrcPerformNative(driver, vm, NULL, NULL, uri,
cookiein, cookieinlen,
cookieout, cookieoutlen, flags,
- 0, NULL, NULL, 0, NULL, migParams, NULL);
+ 0, NULL, NULL, NULL, migParams, NULL);
virCloseCallbacksDomainAdd(vm, conn, qemuMigrationAnyConnectionClosed);
ret = qemuMigrationSrcPerformTunnel(driver, vm, st, NULL, NULL,
NULL, 0, NULL, NULL,
flags, resource, dconn,
- NULL, 0, NULL, migParams);
+ NULL, NULL, migParams);
else
ret = qemuMigrationSrcPerformNative(driver, vm, NULL, NULL, uri_out,
cookie, cookielen,
NULL, NULL, /* No out cookie with v2 migration */
- flags, resource, dconn, NULL, 0, NULL,
+ flags, resource, dconn, NULL, NULL,
migParams, NULL);
/* Perform failed. Make sure Finish doesn't overwrite the error */
const char *uri,
const char *graphicsuri,
const char *listenAddress,
- size_t nmigrate_disks,
const char **migrate_disks,
int nbdPort,
const char *nbdURI,
} else {
dom_xml = qemuMigrationSrcBeginPhase(driver, vm, xmlin, dname,
&cookieout, &cookieoutlen,
- nmigrate_disks, migrate_disks, flags);
+ migrate_disks, flags);
}
if (!dom_xml)
goto cleanup;
cookiein, cookieinlen,
&cookieout, &cookieoutlen,
flags, bandwidth, dconn, graphicsuri,
- nmigrate_disks, migrate_disks,
+ migrate_disks,
migParams);
} else {
ret = qemuMigrationSrcPerformNative(driver, vm, xmlin, persist_xml, uri,
cookiein, cookieinlen,
&cookieout, &cookieoutlen,
flags, bandwidth, dconn, graphicsuri,
- nmigrate_disks, migrate_disks,
+ migrate_disks,
migParams, nbdURI);
}
const char *uri,
const char *graphicsuri,
const char *listenAddress,
- size_t nmigrate_disks,
const char **migrate_disks,
int nbdPort,
const char *nbdURI,
if (*v3proto) {
ret = qemuMigrationSrcPerformPeer2Peer3(driver, sconn, dconn, dconnuri, vm, xmlin,
persist_xml, dname, uri, graphicsuri,
- listenAddress, nmigrate_disks, migrate_disks,
+ listenAddress, migrate_disks,
nbdPort, nbdURI, migParams, resource,
!!useParams, flags);
} else {
const char *uri,
const char *graphicsuri,
const char *listenAddress,
- size_t nmigrate_disks,
const char **migrate_disks,
int nbdPort,
const char *nbdURI,
goto endjob;
if (!(flags & (VIR_MIGRATE_UNSAFE | VIR_MIGRATE_OFFLINE)) &&
- !qemuMigrationSrcIsSafe(vm->def, priv->qemuCaps,
- nmigrate_disks, migrate_disks, flags))
+ !qemuMigrationSrcIsSafe(vm->def, priv->qemuCaps, migrate_disks, flags))
goto endjob;
qemuMigrationSrcStoreDomainState(vm);
if ((flags & (VIR_MIGRATE_TUNNELLED | VIR_MIGRATE_PEER2PEER))) {
ret = qemuMigrationSrcPerformPeer2Peer(driver, conn, vm, xmlin, persist_xml,
dconnuri, uri, graphicsuri, listenAddress,
- nmigrate_disks, migrate_disks, nbdPort,
+ migrate_disks, nbdPort,
nbdURI,
migParams, flags, dname, resource,
&v3proto);
ret = qemuMigrationSrcPerformNative(driver, vm, xmlin, persist_xml, uri, cookiein, cookieinlen,
cookieout, cookieoutlen,
- flags, resource, NULL, NULL, 0, NULL,
+ flags, resource, NULL, NULL, NULL,
migParams, nbdURI);
}
if (ret < 0)
const char *persist_xml,
const char *uri,
const char *graphicsuri,
- size_t nmigrate_disks,
const char **migrate_disks,
qemuMigrationParams *migParams,
const char *cookiein,
if (qemuMigrationSrcPerformNative(driver, vm, xmlin, persist_xml, uri, cookiein, cookieinlen,
cookieout, cookieoutlen,
flags, resource, NULL, graphicsuri,
- nmigrate_disks, migrate_disks, migParams, nbdURI) < 0)
+ migrate_disks, migParams, nbdURI) < 0)
goto cleanup;
virCloseCallbacksDomainAdd(vm, conn, qemuMigrationAnyConnectionClosed);
const char *uri,
const char *graphicsuri,
const char *listenAddress,
- size_t nmigrate_disks,
const char **migrate_disks,
int nbdPort,
const char *nbdURI,
return qemuMigrationSrcPerformJob(driver, conn, vm, xmlin, persist_xml, dconnuri, uri,
graphicsuri, listenAddress,
- nmigrate_disks, migrate_disks, nbdPort,
+ migrate_disks, nbdPort,
nbdURI, migParams,
cookiein, cookieinlen,
cookieout, cookieoutlen,
if (v3proto) {
return qemuMigrationSrcPerformPhase(driver, conn, vm, xmlin, persist_xml, uri,
graphicsuri,
- nmigrate_disks, migrate_disks,
+ migrate_disks,
migParams,
cookiein, cookieinlen,
cookieout, cookieoutlen,
return qemuMigrationSrcPerformJob(driver, conn, vm, xmlin, persist_xml, NULL,
uri, graphicsuri, listenAddress,
- nmigrate_disks, migrate_disks, nbdPort,
+ migrate_disks, nbdPort,
nbdURI, migParams,
cookiein, cookieinlen,
cookieout, cookieoutlen, flags,