migration: Our release callback was just free

We called it from a single place, and always with state !=
MIG_STATE_ACTIVE.  Just remove the whole callback.  For users of the
notifier, notice that this is exactly the case where they don't care,
we are just freeing the state from previous failed migration (it can't
be a sucessful one, otherwise we would not be running on that machine
in the first place).

Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
Juan Quintela 2010-05-11 23:18:34 +02:00
parent 458cf28e6b
commit 92920cd782
2 changed files with 1 additions and 19 deletions

View File

@ -123,10 +123,7 @@ int do_migrate(Monitor *mon, const QDict *qdict, QObject **ret_data)
goto free_migrate_state;
}
if (current_migration) {
current_migration->release(current_migration);
}
g_free(current_migration);
current_migration = s;
notifier_list_notify(&migration_state_notifiers, NULL);
return 0;
@ -416,19 +413,6 @@ static void migrate_fd_cancel(MigrationState *s)
migrate_fd_cleanup(s);
}
static void migrate_fd_release(MigrationState *s)
{
DPRINTF("releasing state\n");
if (s->state == MIG_STATE_ACTIVE) {
s->state = MIG_STATE_CANCELLED;
notifier_list_notify(&migration_state_notifiers, NULL);
migrate_fd_cleanup(s);
}
g_free(s);
}
static void migrate_fd_wait_for_unfreeze(void *opaque)
{
MigrationState *s = opaque;
@ -511,7 +495,6 @@ static MigrationState *migrate_new(Monitor *mon, int64_t bandwidth_limit,
s->cancel = migrate_fd_cancel;
s->get_status = migrate_fd_get_status;
s->release = migrate_fd_release;
s->blk = blk;
s->shared = inc;
s->mon = NULL;

View File

@ -40,7 +40,6 @@ struct MigrationState
int (*write)(MigrationState *s, const void *buff, size_t size);
void (*cancel)(MigrationState *s);
int (*get_status)(MigrationState *s);
void (*release)(MigrationState *s);
void *opaque;
int blk;
int shared;