migration/multifd: Allow zero pages in file migration
authorFabiano Rosas <farosas@suse.de>
Mon, 11 Mar 2024 18:00:09 +0000 (18:00 +0000)
committerPeter Xu <peterx@redhat.com>
Mon, 11 Mar 2024 20:34:51 +0000 (16:34 -0400)
Currently, it's an error to have no data pages in the multifd file
migration because zero page detection is done in the migration thread
and zero pages don't reach multifd. This is enforced with the
pages->num assert.

We're about to add zero page detection on the multifd thread. Fix the
file_write_ramblock_iov() to stop considering p->iovs_num=0 an error.

Signed-off-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/r/20240311180015.3359271-2-hao.xiang@linux.dev
Signed-off-by: Peter Xu <peterx@redhat.com>
migration/file.c

index 5054a60851a056591c170d61db9d24bafde16fb4..b0b963e0cec4f011e63930704ebfec4129d13b7c 100644 (file)
@@ -159,7 +159,7 @@ void file_start_incoming_migration(FileMigrationArgs *file_args, Error **errp)
 int file_write_ramblock_iov(QIOChannel *ioc, const struct iovec *iov,
                             int niov, RAMBlock *block, Error **errp)
 {
-    ssize_t ret = -1;
+    ssize_t ret = 0;
     int i, slice_idx, slice_num;
     uintptr_t base, next, offset;
     size_t len;