Commit bd5de61e authored by Scott Cheloha's avatar Scott Cheloha Committed by Juan Quintela
Browse files

migration: add savevm_state_handler_remove()



Create a function to abstract common logic needed when removing a
SaveStateEntry element from the savevm_state.handlers queue.

For now we just remove the element.  Soon it will involve additional
cleanup.

Signed-off-by: default avatarScott Cheloha <cheloha@linux.vnet.ibm.com>
Reviewed-by: default avatarDr. David Alan Gilbert <dgilbert@redhat.com>
Reviewed-by: default avatarJuan Quintela <quintela@redhat.com>
Signed-off-by: default avatarJuan Quintela <quintela@redhat.com>
parent 619bd31d
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -725,6 +725,11 @@ static void savevm_state_handler_insert(SaveStateEntry *nse)
    }
}

static void savevm_state_handler_remove(SaveStateEntry *se)
{
    QTAILQ_REMOVE(&savevm_state.handlers, se, entry);
}

/* TODO: Individual devices generally have very little idea about the rest
   of the system, so instance_id should be removed/replaced.
   Meanwhile pass -1 as instance_id if you do not already have a clearly
@@ -777,7 +782,7 @@ void unregister_savevm(VMStateIf *obj, const char *idstr, void *opaque)

    QTAILQ_FOREACH_SAFE(se, &savevm_state.handlers, entry, new_se) {
        if (strcmp(se->idstr, id) == 0 && se->opaque == opaque) {
            QTAILQ_REMOVE(&savevm_state.handlers, se, entry);
            savevm_state_handler_remove(se);
            g_free(se->compat);
            g_free(se);
        }
@@ -841,7 +846,7 @@ void vmstate_unregister(VMStateIf *obj, const VMStateDescription *vmsd,

    QTAILQ_FOREACH_SAFE(se, &savevm_state.handlers, entry, new_se) {
        if (se->vmsd == vmsd && se->opaque == opaque) {
            QTAILQ_REMOVE(&savevm_state.handlers, se, entry);
            savevm_state_handler_remove(se);
            g_free(se->compat);
            g_free(se);
        }