migrate_init: Call from savevm
Suspend to file is very much like a migrate, and it makes life easier if we have the Migration state available, so initialise it in the savevm.c code for suspending. Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Reviewed-by: David Gibson <david@gibson.dropbear.id.au> Reviewed-by: Juan Quintela <quintela@redhat.com> Reviewd-by: Amit Shah <amit.shah@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com>
This commit is contained in:
		
							parent
							
								
									a776aa15a7
								
							
						
					
					
						commit
						aefeb18bde
					
				| @ -42,10 +42,7 @@ struct MigrationParams { | ||||
|     bool shared; | ||||
| }; | ||||
| 
 | ||||
| typedef struct MigrationState MigrationState; | ||||
| 
 | ||||
| typedef QLIST_HEAD(, LoadStateEntry) LoadStateEntry_Head; | ||||
| 
 | ||||
| /* State for the incoming migration */ | ||||
| struct MigrationIncomingState { | ||||
|     QEMUFile *from_src_file; | ||||
| @ -116,6 +113,7 @@ int migrate_fd_close(MigrationState *s); | ||||
| 
 | ||||
| void add_migration_state_change_notifier(Notifier *notify); | ||||
| void remove_migration_state_change_notifier(Notifier *notify); | ||||
| MigrationState *migrate_init(const MigrationParams *params); | ||||
| bool migration_in_setup(MigrationState *); | ||||
| bool migration_has_finished(MigrationState *); | ||||
| bool migration_has_failed(MigrationState *); | ||||
|  | ||||
| @ -44,6 +44,7 @@ typedef struct MemoryRegion MemoryRegion; | ||||
| typedef struct MemoryRegionSection MemoryRegionSection; | ||||
| typedef struct MigrationIncomingState MigrationIncomingState; | ||||
| typedef struct MigrationParams MigrationParams; | ||||
| typedef struct MigrationState MigrationState; | ||||
| typedef struct Monitor Monitor; | ||||
| typedef struct MouseTransformInfo MouseTransformInfo; | ||||
| typedef struct MSIMessage MSIMessage; | ||||
|  | ||||
| @ -682,7 +682,7 @@ bool migration_has_failed(MigrationState *s) | ||||
|             s->state == MIGRATION_STATUS_FAILED); | ||||
| } | ||||
| 
 | ||||
| static MigrationState *migrate_init(const MigrationParams *params) | ||||
| MigrationState *migrate_init(const MigrationParams *params) | ||||
| { | ||||
|     MigrationState *s = migrate_get_current(); | ||||
|     int64_t bandwidth_limit = s->bandwidth_limit; | ||||
|  | ||||
| @ -922,6 +922,8 @@ static int qemu_savevm_state(QEMUFile *f, Error **errp) | ||||
|         .blk = 0, | ||||
|         .shared = 0 | ||||
|     }; | ||||
|     MigrationState *ms = migrate_init(¶ms); | ||||
|     ms->file = f; | ||||
| 
 | ||||
|     if (qemu_savevm_state_blocked(errp)) { | ||||
|         return -EINVAL; | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Dr. David Alan Gilbert
						Dr. David Alan Gilbert