On Wed, Jun 11, 2025 at 03:56:10PM -0500, Jaehoon Kim wrote: > Extend cpr_transfer_input to handle SOCKET_ADDRESS_TYPE_FD alongside > SOCKET_ADDRESS_TYPE_UNIX. This change supports the use of pre-listened > socket file descriptors for cpr migration channels. > > This change is particularly useful in qtest environments, where the > socket may be created externally and passed via fd. > > Reviewed-by: Jason J. Herne <jjhe...@linux.ibm.com> > Reviewed-by: Steve Sistare <steven.sist...@oracle.com> > Signed-off-by: Jaehoon Kim <jh...@linux.ibm.com> > --- > migration/cpr-transfer.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-)
This patch *MUST* be first in the series, otherwise 'git bisect' will hit test failures on the former patch. > > diff --git a/migration/cpr-transfer.c b/migration/cpr-transfer.c > index e1f140359c..00371d17c3 100644 > --- a/migration/cpr-transfer.c > +++ b/migration/cpr-transfer.c > @@ -46,7 +46,8 @@ QEMUFile *cpr_transfer_input(MigrationChannel *channel, > Error **errp) > MigrationAddress *addr = channel->addr; > > if (addr->transport == MIGRATION_ADDRESS_TYPE_SOCKET && > - addr->u.socket.type == SOCKET_ADDRESS_TYPE_UNIX) { > + (addr->u.socket.type == SOCKET_ADDRESS_TYPE_UNIX || > + addr->u.socket.type == SOCKET_ADDRESS_TYPE_FD)) { > > g_autoptr(QIOChannelSocket) sioc = NULL; > SocketAddress *saddr = &addr->u.socket; > @@ -60,7 +61,9 @@ QEMUFile *cpr_transfer_input(MigrationChannel *channel, > Error **errp) > > sioc = qio_net_listener_wait_client(listener); > ioc = QIO_CHANNEL(sioc); > - trace_cpr_transfer_input(addr->u.socket.u.q_unix.path); > + trace_cpr_transfer_input( > + addr->u.socket.type == SOCKET_ADDRESS_TYPE_UNIX ? > + addr->u.socket.u.q_unix.path : addr->u.socket.u.fd.str); > qio_channel_set_name(ioc, "cpr-in"); > return qemu_file_new_input(ioc); > > -- > 2.49.0 > > With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|