提交 28b87442 编写于 作者: P Peter Maydell

Merge remote-tracking branch 'remotes/amit-migration/tags/migration-for-2.7-7' into staging

Migration:
 - couple of bug fixes
 - couple of typo fixes

# gpg: Signature made Thu 11 Aug 2016 12:36:00 BST
# gpg:                using RSA key 0xEB0B4DFC657EF670
# gpg: Good signature from "Amit Shah <amit@amitshah.net>"
# gpg:                 aka "Amit Shah <amit@kernel.org>"
# gpg:                 aka "Amit Shah <amitshah@gmx.net>"
# Primary key fingerprint: 48CA 3722 5FE7 F4A8 B337  2735 1E9A 3B5F 8540 83B6
#      Subkey fingerprint: CC63 D332 AB8F 4617 4529  6534 EB0B 4DFC 657E F670

* remotes/amit-migration/tags/migration-for-2.7-7:
  migration/socket: fix typo in file header
  migration: fix live migration failure with compression
  migration: mmap error check fix
  migration/ram: fix typo
Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
...@@ -604,7 +604,8 @@ void *postcopy_get_tmp_page(MigrationIncomingState *mis) ...@@ -604,7 +604,8 @@ void *postcopy_get_tmp_page(MigrationIncomingState *mis)
mis->postcopy_tmp_page = mmap(NULL, getpagesize(), mis->postcopy_tmp_page = mmap(NULL, getpagesize(),
PROT_READ | PROT_WRITE, MAP_PRIVATE | PROT_READ | PROT_WRITE, MAP_PRIVATE |
MAP_ANONYMOUS, -1, 0); MAP_ANONYMOUS, -1, 0);
if (!mis->postcopy_tmp_page) { if (mis->postcopy_tmp_page == MAP_FAILED) {
mis->postcopy_tmp_page = NULL;
error_report("%s: %s", __func__, strerror(errno)); error_report("%s: %s", __func__, strerror(errno));
return NULL; return NULL;
} }
......
...@@ -668,6 +668,7 @@ int qemu_put_qemu_file(QEMUFile *f_des, QEMUFile *f_src) ...@@ -668,6 +668,7 @@ int qemu_put_qemu_file(QEMUFile *f_des, QEMUFile *f_src)
len = f_src->buf_index; len = f_src->buf_index;
qemu_put_buffer(f_des, f_src->buf, f_src->buf_index); qemu_put_buffer(f_des, f_src->buf, f_src->buf_index);
f_src->buf_index = 0; f_src->buf_index = 0;
f_src->iovcnt = 0;
} }
return len; return len;
} }
......
...@@ -375,8 +375,8 @@ void migrate_compress_threads_create(void) ...@@ -375,8 +375,8 @@ void migrate_compress_threads_create(void)
qemu_cond_init(&comp_done_cond); qemu_cond_init(&comp_done_cond);
qemu_mutex_init(&comp_done_lock); qemu_mutex_init(&comp_done_lock);
for (i = 0; i < thread_count; i++) { for (i = 0; i < thread_count; i++) {
/* com_param[i].file is just used as a dummy buffer to save data, set /* comp_param[i].file is just used as a dummy buffer to save data,
* it's ops to empty. * set its ops to empty.
*/ */
comp_param[i].file = qemu_fopen_ops(NULL, &empty_ops); comp_param[i].file = qemu_fopen_ops(NULL, &empty_ops);
comp_param[i].done = true; comp_param[i].done = true;
......
/* /*
* QEMU live migration via Unix Domain Sockets * QEMU live migration via socket
* *
* Copyright Red Hat, Inc. 2009-2016 * Copyright Red Hat, Inc. 2009-2016
* *
...@@ -94,10 +94,12 @@ static void socket_start_outgoing_migration(MigrationState *s, ...@@ -94,10 +94,12 @@ static void socket_start_outgoing_migration(MigrationState *s,
{ {
QIOChannelSocket *sioc = qio_channel_socket_new(); QIOChannelSocket *sioc = qio_channel_socket_new();
struct SocketConnectData *data = g_new0(struct SocketConnectData, 1); struct SocketConnectData *data = g_new0(struct SocketConnectData, 1);
data->s = s; data->s = s;
if (saddr->type == SOCKET_ADDRESS_KIND_INET) { if (saddr->type == SOCKET_ADDRESS_KIND_INET) {
data->hostname = g_strdup(saddr->u.inet.data->host); data->hostname = g_strdup(saddr->u.inet.data->host);
} }
qio_channel_socket_connect_async(sioc, qio_channel_socket_connect_async(sioc,
saddr, saddr,
socket_outgoing_migration, socket_outgoing_migration,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册