Now that current_migration always exist, there is no reason for max_throotle variable.
Signed-off-by: Juan Quintela <quint...@redhat.com> --- migration.c | 19 ++++++++++--------- 1 files changed, 10 insertions(+), 9 deletions(-) diff --git a/migration.c b/migration.c index c382383..ea50a6f 100644 --- a/migration.c +++ b/migration.c @@ -31,14 +31,14 @@ do { } while (0) #endif -/* Migration speed throttling */ -static int64_t max_throttle = (32 << 20); +#define MAX_THROTTLE (32 << 20) /* Migration speed throttling */ /* When we add fault tolerance, we could have several migrations at once. For now we don't need to add dynamic creation of migration */ static MigrationState current_migration_static = { .state = MIG_STATE_NONE, + .bandwidth_limit = MAX_THROTTLE, }; static MigrationState *current_migration = ¤t_migration_static; @@ -385,14 +385,14 @@ void migrate_fd_connect(MigrationState *s) migrate_fd_put_ready(s); } -static void migrate_init_state(Monitor *mon, int64_t bandwidth_limit, - int detach, int blk, int inc) +static void migrate_init_state(Monitor *mon, int detach, int blk, int inc) { + int64_t bandwidth_limit = current_migration->bandwidth_limit; + memset(current_migration, 0, sizeof(current_migration)); + current_migration->bandwidth_limit = bandwidth_limit; current_migration->blk = blk; current_migration->shared = inc; - current_migration->mon = NULL; - current_migration->bandwidth_limit = bandwidth_limit; current_migration->state = MIG_STATE_NONE; if (!detach) { @@ -418,7 +418,7 @@ int do_migrate(Monitor *mon, const QDict *qdict, QObject **ret_data) return -1; } - migrate_init_state(mon, max_throttle, detach, blk, inc); + migrate_init_state(mon, detach, blk, inc); if (strstart(uri, "tcp:", &p)) { ret = tcp_start_outgoing_migration(current_migration, p); @@ -458,9 +458,10 @@ int do_migrate_set_speed(Monitor *mon, const QDict *qdict, QObject **ret_data) if (d < 0) { d = 0; } - max_throttle = d; + current_migration->bandwidth_limit = d; - qemu_file_set_rate_limit(current_migration->file, max_throttle); + qemu_file_set_rate_limit(current_migration->file, + current_migration->bandwidth_limit); return 0; } -- 1.7.6.2