Commit e6a1cf21 authored by Paolo Bonzini's avatar Paolo Bonzini Committed by Juan Quintela
Browse files

migration: use QEMUFile for writing outgoing migration data



Second, drop the file descriptor indirection, and write directly to the
QEMUFile.

Reviewed-by: default avatarOrit Wasserman <owasserm@redhat.com>
Reviewed-by: default avatarJuan Quintela <quintela@redhat.com>
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
Signed-off-by: default avatarJuan Quintela <quintela@redhat.com>
parent f8bbc128
Loading
Loading
Loading
Loading
+0 −4
Original line number Diff line number Diff line
@@ -40,10 +40,6 @@ struct MigrationState
    QEMUFile *file;
    QEMUFile *migration_file;

    int fd;
    int (*get_error)(MigrationState *s);
    int (*write)(MigrationState *s, const void *buff, size_t size);

    int state;
    MigrationParams params;
    int64_t total_time;
+0 −12
Original line number Diff line number Diff line
@@ -33,16 +33,6 @@
    do { } while (0)
#endif

static int file_errno(MigrationState *s)
{
    return errno;
}

static int file_write(MigrationState *s, const void * buf, size_t size)
{
    return write(s->fd, buf, size);
}

void exec_start_outgoing_migration(MigrationState *s, const char *command, Error **errp)
{
    s->migration_file = qemu_popen_cmd(command, "w");
@@ -51,8 +41,6 @@ void exec_start_outgoing_migration(MigrationState *s, const char *command, Error
        return;
    }

    s->get_error = file_errno;
    s->write = file_write;
    migrate_fd_connect(s);
}

+0 −12
Original line number Diff line number Diff line
@@ -30,16 +30,6 @@
    do { } while (0)
#endif

static int fd_errno(MigrationState *s)
{
    return errno;
}

static int fd_write(MigrationState *s, const void * buf, size_t size)
{
    return write(s->fd, buf, size);
}

void fd_start_outgoing_migration(MigrationState *s, const char *fdname, Error **errp)
{
    int fd = monitor_get_fd(cur_mon, fdname, errp);
@@ -48,8 +38,6 @@ void fd_start_outgoing_migration(MigrationState *s, const char *fdname, Error **
    }
    s->migration_file = qemu_fdopen(fd, "wb");

    s->get_error = fd_errno;
    s->write = fd_write;
    migrate_fd_connect(s);
}

+0 −12
Original line number Diff line number Diff line
@@ -29,16 +29,6 @@
    do { } while (0)
#endif

static int socket_errno(MigrationState *s)
{
    return socket_error();
}

static int socket_write(MigrationState *s, const void * buf, size_t size)
{
    return send(s->fd, buf, size, 0);
}

static void tcp_wait_for_connect(int fd, void *opaque)
{
    MigrationState *s = opaque;
@@ -56,8 +46,6 @@ static void tcp_wait_for_connect(int fd, void *opaque)

void tcp_start_outgoing_migration(MigrationState *s, const char *host_port, Error **errp)
{
    s->get_error = socket_errno;
    s->write = socket_write;
    inet_nonblocking_connect(host_port, tcp_wait_for_connect, s, errp);
}

+0 −12
Original line number Diff line number Diff line
@@ -29,16 +29,6 @@
    do { } while (0)
#endif

static int unix_errno(MigrationState *s)
{
    return errno;
}

static int unix_write(MigrationState *s, const void * buf, size_t size)
{
    return write(s->fd, buf, size);
}

static void unix_wait_for_connect(int fd, void *opaque)
{
    MigrationState *s = opaque;
@@ -56,8 +46,6 @@ static void unix_wait_for_connect(int fd, void *opaque)

void unix_start_outgoing_migration(MigrationState *s, const char *path, Error **errp)
{
    s->get_error = unix_errno;
    s->write = unix_write;
    unix_nonblocking_connect(path, unix_wait_for_connect, s, errp);
}

Loading