diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2018-03-30 19:58:17 +0100 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2018-03-30 19:58:17 +0100 |
commit | 4cd327ded7337c418da114c184cf5868fd980ab4 (patch) | |
tree | 6f6dbaf375f303d0bf337dcc0c519006d41e1bf5 | |
parent | 47d3b60858d90ac8a0cc3a72af7f95c96781125a (diff) | |
parent | 0746a92612276aee69e66dfe6782b0f882d221d5 (diff) |
Merge remote-tracking branch 'remotes/dgilbert/tags/pull-migration-20180329a' into staging
Migration pull (small fixes)
A pair of two small fixes for 2.12.
# gpg: Signature made Thu 29 Mar 2018 14:55:17 BST
# gpg: using RSA key 0516331EBC5BFDE7
# gpg: Good signature from "Dr. David Alan Gilbert (RH2) <dgilbert@redhat.com>"
# Primary key fingerprint: 45F5 C71B 4A0C B7FB 977A 9FA9 0516 331E BC5B FDE7
* remotes/dgilbert/tags/pull-migration-20180329a:
migration: Don't activate block devices if using -S
migration: fix pfd leak
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
-rw-r--r-- | migration/migration.c | 22 | ||||
-rw-r--r-- | migration/postcopy-ram.c | 1 |
2 files changed, 16 insertions, 7 deletions
diff --git a/migration/migration.c b/migration/migration.c index 52a5092add..58bd382730 100644 --- a/migration/migration.c +++ b/migration/migration.c @@ -306,13 +306,21 @@ static void process_incoming_migration_bh(void *opaque) Error *local_err = NULL; MigrationIncomingState *mis = opaque; - /* Make sure all file formats flush their mutable metadata. - * If we get an error here, just don't restart the VM yet. */ - bdrv_invalidate_cache_all(&local_err); - if (local_err) { - error_report_err(local_err); - local_err = NULL; - autostart = false; + /* Only fire up the block code now if we're going to restart the + * VM, else 'cont' will do it. + * This causes file locking to happen; so we don't want it to happen + * unless we really are starting the VM. + */ + if (autostart && (!global_state_received() || + global_state_get_runstate() == RUN_STATE_RUNNING)) { + /* Make sure all file formats flush their mutable metadata. + * If we get an error here, just don't restart the VM yet. */ + bdrv_invalidate_cache_all(&local_err); + if (local_err) { + error_report_err(local_err); + local_err = NULL; + autostart = false; + } } /* diff --git a/migration/postcopy-ram.c b/migration/postcopy-ram.c index efd77939af..4a0b33b373 100644 --- a/migration/postcopy-ram.c +++ b/migration/postcopy-ram.c @@ -754,6 +754,7 @@ static void *postcopy_ram_fault_thread(void *opaque) } } trace_postcopy_ram_fault_thread_exit(); + g_free(pfd); return NULL; } |