diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 6008c4e0b1..1257c70511 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -10590,7 +10590,7 @@ static int doNativeMigrate(struct qemud_driver *driver, int ret = -1; xmlURIPtr uribits = NULL; qemuDomainObjPrivatePtr priv = vm->privateData; - unsigned int background_flags = 0; + unsigned int background_flags = QEMU_MONITOR_MIGRATE_BACKGROUND; /* Issue the migrate command. */ if (STRPREFIX(uri, "tcp:") && !STRPREFIX(uri, "tcp://")) { diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c index ea0351ea82..f428665f22 100644 --- a/src/qemu/qemu_monitor.c +++ b/src/qemu/qemu_monitor.c @@ -1299,13 +1299,13 @@ int qemuMonitorGetMigrationStatus(qemuMonitorPtr mon, int qemuMonitorMigrateToHost(qemuMonitorPtr mon, - unsigned int background, + unsigned int flags, const char *hostname, int port) { int ret; - DEBUG("mon=%p hostname=%s port=%d", - mon, hostname, port); + DEBUG("mon=%p hostname=%s port=%d flags=%u", + mon, hostname, port, flags); if (!mon) { qemuReportError(VIR_ERR_INVALID_ARG, "%s", @@ -1314,20 +1314,20 @@ int qemuMonitorMigrateToHost(qemuMonitorPtr mon, } if (mon->json) - ret = qemuMonitorJSONMigrateToHost(mon, background, hostname, port); + ret = qemuMonitorJSONMigrateToHost(mon, flags, hostname, port); else - ret = qemuMonitorTextMigrateToHost(mon, background, hostname, port); + ret = qemuMonitorTextMigrateToHost(mon, flags, hostname, port); return ret; } int qemuMonitorMigrateToCommand(qemuMonitorPtr mon, - unsigned int background, + unsigned int flags, const char * const *argv) { int ret; - DEBUG("mon=%p argv=%p", - mon, argv); + DEBUG("mon=%p argv=%p flags=%u", + mon, argv, flags); if (!mon) { qemuReportError(VIR_ERR_INVALID_ARG, "%s", @@ -1336,21 +1336,21 @@ int qemuMonitorMigrateToCommand(qemuMonitorPtr mon, } if (mon->json) - ret = qemuMonitorJSONMigrateToCommand(mon, background, argv); + ret = qemuMonitorJSONMigrateToCommand(mon, flags, argv); else - ret = qemuMonitorTextMigrateToCommand(mon, background, argv); + ret = qemuMonitorTextMigrateToCommand(mon, flags, argv); return ret; } int qemuMonitorMigrateToFile(qemuMonitorPtr mon, - unsigned int background, + unsigned int flags, const char * const *argv, const char *target, unsigned long long offset) { int ret; - DEBUG("mon=%p argv=%p target=%s offset=%llu", - mon, argv, target, offset); + DEBUG("mon=%p argv=%p target=%s offset=%llu flags=%u", + mon, argv, target, offset, flags); if (!mon) { qemuReportError(VIR_ERR_INVALID_ARG, "%s", @@ -1366,19 +1366,19 @@ int qemuMonitorMigrateToFile(qemuMonitorPtr mon, } if (mon->json) - ret = qemuMonitorJSONMigrateToFile(mon, background, argv, target, offset); + ret = qemuMonitorJSONMigrateToFile(mon, flags, argv, target, offset); else - ret = qemuMonitorTextMigrateToFile(mon, background, argv, target, offset); + ret = qemuMonitorTextMigrateToFile(mon, flags, argv, target, offset); return ret; } int qemuMonitorMigrateToUnix(qemuMonitorPtr mon, - unsigned int background, + unsigned int flags, const char *unixfile) { int ret; - DEBUG("mon=%p, unixfile=%s", - mon, unixfile); + DEBUG("mon=%p, unixfile=%s flags=%u", + mon, unixfile, flags); if (!mon) { qemuReportError(VIR_ERR_INVALID_ARG, "%s", @@ -1387,9 +1387,9 @@ int qemuMonitorMigrateToUnix(qemuMonitorPtr mon, } if (mon->json) - ret = qemuMonitorJSONMigrateToUnix(mon, background, unixfile); + ret = qemuMonitorJSONMigrateToUnix(mon, flags, unixfile); else - ret = qemuMonitorTextMigrateToUnix(mon, background, unixfile); + ret = qemuMonitorTextMigrateToUnix(mon, flags, unixfile); return ret; } diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h index b6a8f9f6c5..459ccb70bd 100644 --- a/src/qemu/qemu_monitor.h +++ b/src/qemu/qemu_monitor.h @@ -256,12 +256,12 @@ typedef enum { } QEMU_MONITOR_MIGRATE; int qemuMonitorMigrateToHost(qemuMonitorPtr mon, - unsigned int background, + unsigned int flags, const char *hostname, int port); int qemuMonitorMigrateToCommand(qemuMonitorPtr mon, - unsigned int background, + unsigned int flags, const char * const *argv); /* In general, BS is the smallest fundamental block size we can use to @@ -276,13 +276,13 @@ int qemuMonitorMigrateToCommand(qemuMonitorPtr mon, # define QEMU_MONITOR_MIGRATE_TO_FILE_TRANSFER_SIZE (1024llu * 1024) int qemuMonitorMigrateToFile(qemuMonitorPtr mon, - unsigned int background, + unsigned int flags, const char * const *argv, const char *target, unsigned long long offset); int qemuMonitorMigrateToUnix(qemuMonitorPtr mon, - unsigned int background, + unsigned int flags, const char *unixfile); int qemuMonitorMigrateCancel(qemuMonitorPtr mon); diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c index 40218aaf4e..01be86d258 100644 --- a/src/qemu/qemu_monitor_json.c +++ b/src/qemu/qemu_monitor_json.c @@ -1599,14 +1599,17 @@ int qemuMonitorJSONGetMigrationStatus(qemuMonitorPtr mon, static int qemuMonitorJSONMigrate(qemuMonitorPtr mon, - int background, + unsigned int flags, const char *uri) { int ret; - virJSONValuePtr cmd = qemuMonitorJSONMakeCommand("migrate", - "i:detach", background ? 1 : 0, - "s:uri", uri, - NULL); + virJSONValuePtr cmd = + qemuMonitorJSONMakeCommand("migrate", + "i:detach", flags & QEMU_MONITOR_MIGRATE_BACKGROUND ? 1 : 0, + "i:blk", flags & QEMU_MONITOR_MIGRATE_NON_SHARED_DISK ? 1 : 0, + "i:inc", flags & QEMU_MONITOR_MIGRATE_NON_SHARED_INC ? 1 : 0, + "s:uri", uri, + NULL); virJSONValuePtr reply = NULL; if (!cmd) @@ -1624,7 +1627,7 @@ static int qemuMonitorJSONMigrate(qemuMonitorPtr mon, int qemuMonitorJSONMigrateToHost(qemuMonitorPtr mon, - int background, + unsigned int flags, const char *hostname, int port) { @@ -1636,7 +1639,7 @@ int qemuMonitorJSONMigrateToHost(qemuMonitorPtr mon, return -1; } - ret = qemuMonitorJSONMigrate(mon, background, uri); + ret = qemuMonitorJSONMigrate(mon, flags, uri); VIR_FREE(uri); @@ -1645,7 +1648,7 @@ int qemuMonitorJSONMigrateToHost(qemuMonitorPtr mon, int qemuMonitorJSONMigrateToCommand(qemuMonitorPtr mon, - int background, + unsigned int flags, const char * const *argv) { char *argstr; @@ -1663,7 +1666,7 @@ int qemuMonitorJSONMigrateToCommand(qemuMonitorPtr mon, goto cleanup; } - ret = qemuMonitorJSONMigrate(mon, background, dest); + ret = qemuMonitorJSONMigrate(mon, flags, dest); cleanup: VIR_FREE(argstr); @@ -1672,7 +1675,7 @@ cleanup: } int qemuMonitorJSONMigrateToFile(qemuMonitorPtr mon, - int background, + unsigned int flags, const char * const *argv, const char *target, unsigned long long offset) @@ -1709,7 +1712,7 @@ int qemuMonitorJSONMigrateToFile(qemuMonitorPtr mon, goto cleanup; } - ret = qemuMonitorJSONMigrate(mon, background, dest); + ret = qemuMonitorJSONMigrate(mon, flags, dest); cleanup: VIR_FREE(safe_target); @@ -1719,7 +1722,7 @@ cleanup: } int qemuMonitorJSONMigrateToUnix(qemuMonitorPtr mon, - int background, + unsigned int flags, const char *unixfile) { char *dest = NULL; @@ -1730,7 +1733,7 @@ int qemuMonitorJSONMigrateToUnix(qemuMonitorPtr mon, return -1; } - ret = qemuMonitorJSONMigrate(mon, background, dest); + ret = qemuMonitorJSONMigrate(mon, flags, dest); VIR_FREE(dest); diff --git a/src/qemu/qemu_monitor_json.h b/src/qemu/qemu_monitor_json.h index c57821132e..6fa8d83549 100644 --- a/src/qemu/qemu_monitor_json.h +++ b/src/qemu/qemu_monitor_json.h @@ -97,22 +97,22 @@ int qemuMonitorJSONGetMigrationStatus(qemuMonitorPtr mon, unsigned long long *total); int qemuMonitorJSONMigrateToHost(qemuMonitorPtr mon, - int background, + unsigned int flags, const char *hostname, int port); int qemuMonitorJSONMigrateToCommand(qemuMonitorPtr mon, - int background, + unsigned int flags, const char * const *argv); int qemuMonitorJSONMigrateToFile(qemuMonitorPtr mon, - int background, + unsigned int flags, const char * const *argv, const char *target, unsigned long long offset); int qemuMonitorJSONMigrateToUnix(qemuMonitorPtr mon, - int background, + unsigned int flags, const char *unixfile); int qemuMonitorJSONMigrateCancel(qemuMonitorPtr mon); diff --git a/src/qemu/qemu_monitor_text.c b/src/qemu/qemu_monitor_text.c index c08696244f..569742a42d 100644 --- a/src/qemu/qemu_monitor_text.c +++ b/src/qemu/qemu_monitor_text.c @@ -1136,7 +1136,7 @@ cleanup: static int qemuMonitorTextMigrate(qemuMonitorPtr mon, - unsigned int background, + unsigned int flags, const char *dest) { char *cmd = NULL; @@ -1151,11 +1151,11 @@ static int qemuMonitorTextMigrate(qemuMonitorPtr mon, return -1; } - if (background & QEMU_MONITOR_MIGRATE_BACKGROUND) + if (flags & QEMU_MONITOR_MIGRATE_BACKGROUND) virBufferAddLit(&extra, " -d"); - if (background & QEMU_MONITOR_MIGRATE_NON_SHARED_DISK) + if (flags & QEMU_MONITOR_MIGRATE_NON_SHARED_DISK) virBufferAddLit(&extra, " -b"); - if (background & QEMU_MONITOR_MIGRATE_NON_SHARED_INC) + if (flags & QEMU_MONITOR_MIGRATE_NON_SHARED_INC) virBufferAddLit(&extra, " -i"); if (virBufferError(&extra)) { virBufferFreeAndReset(&extra); @@ -1202,7 +1202,7 @@ cleanup: } int qemuMonitorTextMigrateToHost(qemuMonitorPtr mon, - unsigned int background, + unsigned int flags, const char *hostname, int port) { @@ -1214,7 +1214,7 @@ int qemuMonitorTextMigrateToHost(qemuMonitorPtr mon, return -1; } - ret = qemuMonitorTextMigrate(mon, background, uri); + ret = qemuMonitorTextMigrate(mon, flags, uri); VIR_FREE(uri); @@ -1223,7 +1223,7 @@ int qemuMonitorTextMigrateToHost(qemuMonitorPtr mon, int qemuMonitorTextMigrateToCommand(qemuMonitorPtr mon, - unsigned int background, + unsigned int flags, const char * const *argv) { char *argstr; @@ -1241,7 +1241,7 @@ int qemuMonitorTextMigrateToCommand(qemuMonitorPtr mon, goto cleanup; } - ret = qemuMonitorTextMigrate(mon, background, dest); + ret = qemuMonitorTextMigrate(mon, flags, dest); cleanup: VIR_FREE(argstr); @@ -1250,7 +1250,7 @@ cleanup: } int qemuMonitorTextMigrateToFile(qemuMonitorPtr mon, - unsigned int background, + unsigned int flags, const char * const *argv, const char *target, unsigned long long offset) @@ -1287,7 +1287,7 @@ int qemuMonitorTextMigrateToFile(qemuMonitorPtr mon, goto cleanup; } - ret = qemuMonitorTextMigrate(mon, background, dest); + ret = qemuMonitorTextMigrate(mon, flags, dest); cleanup: VIR_FREE(safe_target); @@ -1297,7 +1297,7 @@ cleanup: } int qemuMonitorTextMigrateToUnix(qemuMonitorPtr mon, - unsigned int background, + unsigned int flags, const char *unixfile) { char *dest = NULL; @@ -1308,7 +1308,7 @@ int qemuMonitorTextMigrateToUnix(qemuMonitorPtr mon, return -1; } - ret = qemuMonitorTextMigrate(mon, background, dest); + ret = qemuMonitorTextMigrate(mon, flags, dest); VIR_FREE(dest); diff --git a/src/qemu/qemu_monitor_text.h b/src/qemu/qemu_monitor_text.h index 91eed84b06..9926d34723 100644 --- a/src/qemu/qemu_monitor_text.h +++ b/src/qemu/qemu_monitor_text.h @@ -95,22 +95,22 @@ int qemuMonitorTextGetMigrationStatus(qemuMonitorPtr mon, unsigned long long *total); int qemuMonitorTextMigrateToHost(qemuMonitorPtr mon, - unsigned int background, + unsigned int flags, const char *hostname, int port); int qemuMonitorTextMigrateToCommand(qemuMonitorPtr mon, - unsigned int background, + unsigned int flags, const char * const *argv); int qemuMonitorTextMigrateToFile(qemuMonitorPtr mon, - unsigned int background, + unsigned int flags, const char * const *argv, const char *target, unsigned long long offset); int qemuMonitorTextMigrateToUnix(qemuMonitorPtr mon, - unsigned int background, + unsigned int flags, const char *unixfile); int qemuMonitorTextMigrateCancel(qemuMonitorPtr mon);