rdma: allow state transitions between other states besides ACTIVE
commitd58f574bf39796ed2396dfd1e308352fbb03f944
authorMichael R. Hines <mrhines@us.ibm.com>
Mon, 22 Jul 2013 14:01:56 +0000 (22 10:01 -0400)
committerJuan Quintela <quintela@redhat.com>
Tue, 23 Jul 2013 11:06:28 +0000 (23 13:06 +0200)
tree334de2cdfca3a64afda9d33c7ed4e28e5d11c08c
parent0033b8b42a1cc2a9350619ea19e11954b12fb819
rdma: allow state transitions between other states besides ACTIVE

This patch is in preparation for the next ones: Until now the MIG_STATE_SETUP
state was not really a 'formal' state. It has been used as a 'zero' state
and QEMU has been unconditionally transitioning into this state when
the QMP migrate command was called. In preparation for timing this state,
we have to make this state a a 'real' state which actually gets transitioned
from later in the migration_thread() from SETUP => ACTIVE, rather than just
automatically dropping into this state at the beginninig of the migration.

This means that the state transition function (migration_finish_set_state())
needs to be capable of transitioning from valid states _other_ than just
MIG_STATE_ACTIVE.

The function is in fact already capable of doing that, but was not allowing the
old state to be a parameter specified as an input.

This patch fixes that and only makes the transition if the current state
matches the old state that the caller intended to transition from.

Reviewed-by: Juan Quintela <quintela@redhat.com>
Tested-by: Michael R. Hines <mrhines@us.ibm.com>
Signed-off-by: Michael R. Hines <mrhines@us.ibm.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
migration.c