migration/rdma: Don't flag an error when we've been told about one
If the other side tells us there's been an error and we fail the migration, we don't need to signal that failure to the other side because it already knew. Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Reviewed-by: Michael R. Hines <michael@hinespot.com> Reviewed-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com>
This commit is contained in:
		
							parent
							
								
									ccb783c312
								
							
						
					
					
						commit
						cd5ea07064
					
				| @ -350,6 +350,7 @@ typedef struct RDMAContext { | ||||
|      */ | ||||
|     int error_state; | ||||
|     int error_reported; | ||||
|     int received_error; | ||||
| 
 | ||||
|     /*
 | ||||
|      * Description of ram blocks used throughout the code. | ||||
| @ -1676,6 +1677,9 @@ static int qemu_rdma_exchange_get_response(RDMAContext *rdma, | ||||
|                 ", but got: %s (%d), length: %d", | ||||
|                 control_desc[expecting], expecting, | ||||
|                 control_desc[head->type], head->type, head->len); | ||||
|         if (head->type == RDMA_CONTROL_ERROR) { | ||||
|             rdma->received_error = true; | ||||
|         } | ||||
|         return -EIO; | ||||
|     } | ||||
|     if (head->len > RDMA_CONTROL_MAX_BUFFER - sizeof(*head)) { | ||||
| @ -2202,7 +2206,7 @@ static void qemu_rdma_cleanup(RDMAContext *rdma) | ||||
|     int ret, idx; | ||||
| 
 | ||||
|     if (rdma->cm_id && rdma->connected) { | ||||
|         if (rdma->error_state) { | ||||
|         if (rdma->error_state && !rdma->received_error) { | ||||
|             RDMAControlHeader head = { .len = 0, | ||||
|                                        .type = RDMA_CONTROL_ERROR, | ||||
|                                        .repeat = 1, | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Dr. David Alan Gilbert
						Dr. David Alan Gilbert