migration_is_setup_or_active
Add 'migration_is_setup_or_active' utility function to check state. (It gets postcopy added to it's list later on in the series) Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Reviewed-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com>
This commit is contained in:
		
							parent
							
								
									6decec9311
								
							
						
					
					
						commit
						f6844b99ce
					
				@ -444,6 +444,23 @@ MigrationParameters *qmp_query_migrate_parameters(Error **errp)
 | 
				
			|||||||
    return params;
 | 
					    return params;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Return true if we're already in the middle of a migration
 | 
				
			||||||
 | 
					 * (i.e. any of the active or setup states)
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					static bool migration_is_setup_or_active(int state)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    switch (state) {
 | 
				
			||||||
 | 
					    case MIGRATION_STATUS_ACTIVE:
 | 
				
			||||||
 | 
					    case MIGRATION_STATUS_SETUP:
 | 
				
			||||||
 | 
					        return true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    default:
 | 
				
			||||||
 | 
					        return false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void get_xbzrle_cache_stats(MigrationInfo *info)
 | 
					static void get_xbzrle_cache_stats(MigrationInfo *info)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    if (migrate_use_xbzrle()) {
 | 
					    if (migrate_use_xbzrle()) {
 | 
				
			||||||
@ -551,8 +568,7 @@ void qmp_migrate_set_capabilities(MigrationCapabilityStatusList *params,
 | 
				
			|||||||
    MigrationState *s = migrate_get_current();
 | 
					    MigrationState *s = migrate_get_current();
 | 
				
			||||||
    MigrationCapabilityStatusList *cap;
 | 
					    MigrationCapabilityStatusList *cap;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (s->state == MIGRATION_STATUS_ACTIVE ||
 | 
					    if (migration_is_setup_or_active(s->state)) {
 | 
				
			||||||
        s->state == MIGRATION_STATUS_SETUP) {
 | 
					 | 
				
			||||||
        error_setg(errp, QERR_MIGRATION_ACTIVE);
 | 
					        error_setg(errp, QERR_MIGRATION_ACTIVE);
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -682,8 +698,7 @@ static void migrate_fd_cancel(MigrationState *s)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    do {
 | 
					    do {
 | 
				
			||||||
        old_state = s->state;
 | 
					        old_state = s->state;
 | 
				
			||||||
        if (old_state != MIGRATION_STATUS_SETUP &&
 | 
					        if (!migration_is_setup_or_active(old_state)) {
 | 
				
			||||||
            old_state != MIGRATION_STATUS_ACTIVE) {
 | 
					 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        migrate_set_state(s, old_state, MIGRATION_STATUS_CANCELLING);
 | 
					        migrate_set_state(s, old_state, MIGRATION_STATUS_CANCELLING);
 | 
				
			||||||
@ -815,8 +830,7 @@ void qmp_migrate(const char *uri, bool has_blk, bool blk,
 | 
				
			|||||||
    params.blk = has_blk && blk;
 | 
					    params.blk = has_blk && blk;
 | 
				
			||||||
    params.shared = has_inc && inc;
 | 
					    params.shared = has_inc && inc;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (s->state == MIGRATION_STATUS_ACTIVE ||
 | 
					    if (migration_is_setup_or_active(s->state) ||
 | 
				
			||||||
        s->state == MIGRATION_STATUS_SETUP ||
 | 
					 | 
				
			||||||
        s->state == MIGRATION_STATUS_CANCELLING) {
 | 
					        s->state == MIGRATION_STATUS_CANCELLING) {
 | 
				
			||||||
        error_setg(errp, QERR_MIGRATION_ACTIVE);
 | 
					        error_setg(errp, QERR_MIGRATION_ACTIVE);
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user