migration: remove unnecessary variables len in QIOChannelRDMA
Because qio_channel_rdma_writev and qio_channel_rdma_readv maybe invoked by different threads concurrently, this patch removes unnecessary variables len in QIOChannelRDMA and use local variable instead. Signed-off-by: Lidong Chen <lidongchen@tencent.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Reviewed-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Lidong Chen <jemmy858585@gmail.com>
This commit is contained in:
		
							parent
							
								
									0f073f44df
								
							
						
					
					
						commit
						f38f6d4155
					
				@ -400,7 +400,6 @@ struct QIOChannelRDMA {
 | 
				
			|||||||
    QIOChannel parent;
 | 
					    QIOChannel parent;
 | 
				
			||||||
    RDMAContext *rdma;
 | 
					    RDMAContext *rdma;
 | 
				
			||||||
    QEMUFile *file;
 | 
					    QEMUFile *file;
 | 
				
			||||||
    size_t len;
 | 
					 | 
				
			||||||
    bool blocking; /* XXX we don't actually honour this yet */
 | 
					    bool blocking; /* XXX we don't actually honour this yet */
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -2608,6 +2607,7 @@ static ssize_t qio_channel_rdma_writev(QIOChannel *ioc,
 | 
				
			|||||||
    int ret;
 | 
					    int ret;
 | 
				
			||||||
    ssize_t done = 0;
 | 
					    ssize_t done = 0;
 | 
				
			||||||
    size_t i;
 | 
					    size_t i;
 | 
				
			||||||
 | 
					    size_t len = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    CHECK_ERROR_STATE();
 | 
					    CHECK_ERROR_STATE();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -2627,10 +2627,10 @@ static ssize_t qio_channel_rdma_writev(QIOChannel *ioc,
 | 
				
			|||||||
        while (remaining) {
 | 
					        while (remaining) {
 | 
				
			||||||
            RDMAControlHeader head;
 | 
					            RDMAControlHeader head;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            rioc->len = MIN(remaining, RDMA_SEND_INCREMENT);
 | 
					            len = MIN(remaining, RDMA_SEND_INCREMENT);
 | 
				
			||||||
            remaining -= rioc->len;
 | 
					            remaining -= len;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            head.len = rioc->len;
 | 
					            head.len = len;
 | 
				
			||||||
            head.type = RDMA_CONTROL_QEMU_FILE;
 | 
					            head.type = RDMA_CONTROL_QEMU_FILE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            ret = qemu_rdma_exchange_send(rdma, &head, data, NULL, NULL, NULL);
 | 
					            ret = qemu_rdma_exchange_send(rdma, &head, data, NULL, NULL, NULL);
 | 
				
			||||||
@ -2640,8 +2640,8 @@ static ssize_t qio_channel_rdma_writev(QIOChannel *ioc,
 | 
				
			|||||||
                return ret;
 | 
					                return ret;
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            data += rioc->len;
 | 
					            data += len;
 | 
				
			||||||
            done += rioc->len;
 | 
					            done += len;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -2736,8 +2736,7 @@ static ssize_t qio_channel_rdma_readv(QIOChannel *ioc,
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    rioc->len = done;
 | 
					    return done;
 | 
				
			||||||
    return rioc->len;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user