mirror of
https://github.com/mii443/qemu.git
synced 2025-08-30 02:49:30 +00:00
multifd: Only send pages when packet are not empty
We send packages without pages sometimes for sysnchronizanion. The iov functions do the right thing, but we will be changing this code in future patches. Signed-off-by: Juan Quintela <quintela@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com>
This commit is contained in:
@ -1088,9 +1088,12 @@ static void *multifd_send_thread(void *opaque)
|
||||
break;
|
||||
}
|
||||
|
||||
ret = qio_channel_writev_all(p->c, p->pages->iov, used, &local_err);
|
||||
if (ret != 0) {
|
||||
break;
|
||||
if (used) {
|
||||
ret = qio_channel_writev_all(p->c, p->pages->iov,
|
||||
used, &local_err);
|
||||
if (ret != 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
qemu_mutex_lock(&p->mutex);
|
||||
@ -1317,9 +1320,12 @@ static void *multifd_recv_thread(void *opaque)
|
||||
p->num_pages += used;
|
||||
qemu_mutex_unlock(&p->mutex);
|
||||
|
||||
ret = qio_channel_readv_all(p->c, p->pages->iov, used, &local_err);
|
||||
if (ret != 0) {
|
||||
break;
|
||||
if (used) {
|
||||
ret = qio_channel_readv_all(p->c, p->pages->iov,
|
||||
used, &local_err);
|
||||
if (ret != 0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (flags & MULTIFD_FLAG_SYNC) {
|
||||
|
Reference in New Issue
Block a user