[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC PATCH 04/10] block: rename *_invalidate_cache_* to *_p
From: |
Benoît Canet |
Subject: |
[Qemu-devel] [RFC PATCH 04/10] block: rename *_invalidate_cache_* to *_post_incoming_migration_* |
Date: |
Tue, 6 Mar 2012 18:32:23 +0100 |
This patch will allow to do a post incoming live migration check
on QED images and keep invalidating caches on qcow2 images.
Signed-off-by: Benoit Canet <address@hidden>
---
block.c | 10 +++++-----
block.h | 8 +++++---
block/qcow2.c | 7 ++++++-
block_int.h | 4 ++--
migration.c | 6 ++++--
5 files changed, 22 insertions(+), 13 deletions(-)
diff --git a/block.c b/block.c
index 889d464..b0f0288 100644
--- a/block.c
+++ b/block.c
@@ -3566,19 +3566,19 @@ int coroutine_fn bdrv_co_flush(BlockDriverState *bs)
}
}
-void bdrv_invalidate_cache(BlockDriverState *bs)
+void bdrv_post_incoming_migration(BlockDriverState *bs)
{
- if (bs->drv && bs->drv->bdrv_invalidate_cache) {
- bs->drv->bdrv_invalidate_cache(bs);
+ if (bs->drv && bs->drv->bdrv_post_incoming_migration) {
+ bs->drv->bdrv_post_incoming_migration(bs);
}
}
-void bdrv_invalidate_cache_all(void)
+void bdrv_post_incoming_migration_all(void)
{
BlockDriverState *bs;
QTAILQ_FOREACH(bs, &bdrv_states, list) {
- bdrv_invalidate_cache(bs);
+ bdrv_post_incoming_migration(bs);
}
}
diff --git a/block.h b/block.h
index 2ddf9c5..1323086 100644
--- a/block.h
+++ b/block.h
@@ -219,9 +219,11 @@ BlockDriverAIOCB *bdrv_aio_ioctl(BlockDriverState *bs,
unsigned long int req, void *buf,
BlockDriverCompletionFunc *cb, void *opaque);
-/* Invalidate any cached metadata used by image formats */
-void bdrv_invalidate_cache(BlockDriverState *bs);
-void bdrv_invalidate_cache_all(void);
+/* Do post incoming migration operations
+ * Ex: flush mutable metadata
+ */
+void bdrv_post_incoming_migration(BlockDriverState *bs);
+void bdrv_post_incoming_migration_all(void);
void bdrv_set_incoming_migration(void);
void bdrv_clear_incoming_migration_all(void);
diff --git a/block/qcow2.c b/block/qcow2.c
index eb5ea48..bbe6032 100644
--- a/block/qcow2.c
+++ b/block/qcow2.c
@@ -700,6 +700,11 @@ static void qcow2_invalidate_cache(BlockDriverState *bs)
}
}
+static void qcow2_post_incoming_migration(BlockDriverState *bs)
+{
+ qcow2_invalidate_cache(bs);
+}
+
static size_t header_ext_add(char *buf, uint32_t magic, const void *s,
size_t len, size_t buflen)
{
@@ -1383,7 +1388,7 @@ static BlockDriver bdrv_qcow2 = {
.bdrv_change_backing_file = qcow2_change_backing_file,
- .bdrv_invalidate_cache = qcow2_invalidate_cache,
+ .bdrv_post_incoming_migration = qcow2_post_incoming_migration,
.create_options = qcow2_create_options,
.bdrv_check = qcow2_check,
diff --git a/block_int.h b/block_int.h
index b460c36..e68d42e 100644
--- a/block_int.h
+++ b/block_int.h
@@ -145,9 +145,9 @@ struct BlockDriver {
int64_t sector_num, int nb_sectors, int *pnum);
/*
- * Invalidate any cached meta-data.
+ * Do the post incoming migration processing
*/
- void (*bdrv_invalidate_cache)(BlockDriverState *bs);
+ void (*bdrv_post_incoming_migration)(BlockDriverState *bs);
/*
* Flushes all data that was already written to the OS all the way down to
diff --git a/migration.c b/migration.c
index 00fa1e3..45af364 100644
--- a/migration.c
+++ b/migration.c
@@ -91,8 +91,10 @@ void process_incoming_migration(QEMUFile *f)
qemu_announce_self();
DPRINTF("successfully loaded vm state\n");
- /* Make sure all file formats flush their mutable metadata */
- bdrv_invalidate_cache_all();
+ /* Execute post incoming migration operations :
+ * for qcow2 make sure to flush mutable metadata
+ **/
+ bdrv_post_incoming_migration_all();
if (autostart) {
vm_start();
--
1.7.7.6
- [Qemu-devel] [RFC PATCH 02/10] block: add a function to set incoming live migration, (continued)
- [Qemu-devel] [RFC PATCH 02/10] block: add a function to set incoming live migration, Benoît Canet, 2012/03/06
- [Qemu-devel] [RFC PATCH 03/10] block: add a function to clear incoming live migration, Benoît Canet, 2012/03/06
- [Qemu-devel] [RFC PATCH 09/10] qed: honor BDRV_O_INCOMING for incoming live migration, Benoît Canet, 2012/03/06
- [Qemu-devel] [RFC PATCH 08/10] qed: add bdrv_post_incoming_migration operation checking the image, Benoît Canet, 2012/03/06
- [Qemu-devel] [RFC PATCH 05/10] migration: inform the block layer of incoming live status, Benoît Canet, 2012/03/06
- [Qemu-devel] [RFC PATCH 07/10] qed: extract image checking into check_image_if_needed, Benoît Canet, 2012/03/06
- [Qemu-devel] [RFC PATCH 10/10] qed: remove incoming live migration blocker, Benoît Canet, 2012/03/06
- [Qemu-devel] [RFC PATCH 04/10] block: rename *_invalidate_cache_* to *_post_incoming_migration_*,
Benoît Canet <=
- [Qemu-devel] [RFC PATCH 06/10] block: open images with BDRV_O_INCOMING on incoming live migration, Benoît Canet, 2012/03/06
- Re: [Qemu-devel] [RFC PATCH 00/10] make qed and live migration usage safe, Benoît Canet, 2012/03/06
- Re: [Qemu-devel] [RFC PATCH 00/10] make qed and live migration usage safe, Benoît Canet, 2012/03/16
- Re: [Qemu-devel] [RFC PATCH 00/10] make qed and live migration usage safe, Stefan Hajnoczi, 2012/03/20