multifd: Make zlib use iov's
Signed-off-by: Juan Quintela <quintela@redhat.com> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
This commit is contained in:
parent
226468ba3d
commit
48a4a44c1c
|
@ -143,6 +143,9 @@ static int zlib_send_prepare(MultiFDSendParams *p, Error **errp)
|
||||||
}
|
}
|
||||||
out_size += available - zs->avail_out;
|
out_size += available - zs->avail_out;
|
||||||
}
|
}
|
||||||
|
p->iov[p->iovs_num].iov_base = z->zbuff;
|
||||||
|
p->iov[p->iovs_num].iov_len = out_size;
|
||||||
|
p->iovs_num++;
|
||||||
p->next_packet_size = out_size;
|
p->next_packet_size = out_size;
|
||||||
p->flags |= MULTIFD_FLAG_ZLIB;
|
p->flags |= MULTIFD_FLAG_ZLIB;
|
||||||
|
|
||||||
|
@ -162,10 +165,7 @@ static int zlib_send_prepare(MultiFDSendParams *p, Error **errp)
|
||||||
*/
|
*/
|
||||||
static int zlib_send_write(MultiFDSendParams *p, uint32_t used, Error **errp)
|
static int zlib_send_write(MultiFDSendParams *p, uint32_t used, Error **errp)
|
||||||
{
|
{
|
||||||
struct zlib_data *z = p->data;
|
return qio_channel_writev_all(p->c, p->iov, p->iovs_num, errp);
|
||||||
|
|
||||||
return qio_channel_write_all(p->c, (void *)z->zbuff, p->next_packet_size,
|
|
||||||
errp);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue