migration/multifd: Pass in MultiFDPages_t to file_write_ramblock_iov

We want to stop dereferencing 'pages' so it can be replaced by an
opaque pointer in the next patches.

Reviewed-by: Peter Xu <peterx@redhat.com>
Signed-off-by: Fabiano Rosas <farosas@suse.de>
This commit is contained in:
Fabiano Rosas 2024-08-27 14:45:51 -03:00
parent 171056ec91
commit 112f7d1b75
3 changed files with 4 additions and 3 deletions

View File

@ -196,12 +196,13 @@ void file_start_incoming_migration(FileMigrationArgs *file_args, Error **errp)
} }
int file_write_ramblock_iov(QIOChannel *ioc, const struct iovec *iov, int file_write_ramblock_iov(QIOChannel *ioc, const struct iovec *iov,
int niov, RAMBlock *block, Error **errp) int niov, MultiFDPages_t *pages, Error **errp)
{ {
ssize_t ret = 0; ssize_t ret = 0;
int i, slice_idx, slice_num; int i, slice_idx, slice_num;
uintptr_t base, next, offset; uintptr_t base, next, offset;
size_t len; size_t len;
RAMBlock *block = pages->block;
slice_idx = 0; slice_idx = 0;
slice_num = 1; slice_num = 1;

View File

@ -21,6 +21,6 @@ int file_parse_offset(char *filespec, uint64_t *offsetp, Error **errp);
void file_cleanup_outgoing_migration(void); void file_cleanup_outgoing_migration(void);
bool file_send_channel_create(gpointer opaque, Error **errp); bool file_send_channel_create(gpointer opaque, Error **errp);
int file_write_ramblock_iov(QIOChannel *ioc, const struct iovec *iov, int file_write_ramblock_iov(QIOChannel *ioc, const struct iovec *iov,
int niov, RAMBlock *block, Error **errp); int niov, MultiFDPages_t *pages, Error **errp);
int multifd_file_recv_data(MultiFDRecvParams *p, Error **errp); int multifd_file_recv_data(MultiFDRecvParams *p, Error **errp);
#endif #endif

View File

@ -956,7 +956,7 @@ static void *multifd_send_thread(void *opaque)
if (migrate_mapped_ram()) { if (migrate_mapped_ram()) {
ret = file_write_ramblock_iov(p->c, p->iov, p->iovs_num, ret = file_write_ramblock_iov(p->c, p->iov, p->iovs_num,
pages->block, &local_err); pages, &local_err);
} else { } else {
ret = qio_channel_writev_full_all(p->c, p->iov, p->iovs_num, ret = qio_channel_writev_full_all(p->c, p->iov, p->iovs_num,
NULL, 0, p->write_flags, NULL, 0, p->write_flags,