aboutsummaryrefslogtreecommitdiff
path: root/savevm.c
diff options
context:
space:
mode:
authorJuan Quintela <quintela@redhat.com>2012-06-27 10:59:15 +0200
committerJuan Quintela <quintela@redhat.com>2012-07-20 08:19:27 +0200
commit6bd68781331590c4f2fbd1fdf98e80d7f6588b31 (patch)
treeae53eee26d30deae6d3ed0ca84b559d0b2819265 /savevm.c
parent9b5bfab05f7c2a56d5908117e8cc62015e6b2c63 (diff)
savevm: introduce is_active method
Enable the creation of a method to tell migration if that section is active and should be migrate. We use it for blk-migration, that is normally not active. We don't create the method for RAM, as setups without RAM are very strange O:-) Signed-off-by: Juan Quintela <quintela@redhat.com>
Diffstat (limited to 'savevm.c')
-rw-r--r--savevm.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/savevm.c b/savevm.c
index 888c5a2faf..afa0c9e3ff 100644
--- a/savevm.c
+++ b/savevm.c
@@ -1576,6 +1576,11 @@ int qemu_savevm_state_begin(QEMUFile *f,
if (!se->ops || !se->ops->save_live_state) {
continue;
}
+ if (se->ops && se->ops->is_active) {
+ if (!se->ops->is_active(se->opaque)) {
+ continue;
+ }
+ }
/* Section type */
qemu_put_byte(f, QEMU_VM_SECTION_START);
qemu_put_be32(f, se->section_id);
@@ -1618,6 +1623,11 @@ int qemu_savevm_state_iterate(QEMUFile *f)
if (!se->ops || !se->ops->save_live_state) {
continue;
}
+ if (se->ops && se->ops->is_active) {
+ if (!se->ops->is_active(se->opaque)) {
+ continue;
+ }
+ }
if (qemu_file_rate_limit(f)) {
return 0;
}
@@ -1658,6 +1668,11 @@ int qemu_savevm_state_complete(QEMUFile *f)
if (!se->ops || !se->ops->save_live_state) {
continue;
}
+ if (se->ops && se->ops->is_active) {
+ if (!se->ops->is_active(se->opaque)) {
+ continue;
+ }
+ }
trace_savevm_section_start();
/* Section type */
qemu_put_byte(f, QEMU_VM_SECTION_END);