[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [RFC PATCH 08/10] qed: add bdrv_post_incoming_migration ope
From: |
Benoît Canet |
Subject: |
[Qemu-devel] [RFC PATCH 08/10] qed: add bdrv_post_incoming_migration operation checking the image |
Date: |
Tue, 6 Mar 2012 18:32:27 +0100 |
The bs is closed on verification failure to avoid further corruptions.
Signed-off-by: Benoit Canet <address@hidden>
---
block.h | 1 +
block/qed.c | 14 ++++++++++++++
migration.c | 1 +
3 files changed, 16 insertions(+), 0 deletions(-)
diff --git a/block.h b/block.h
index 1323086..25b66f0 100644
--- a/block.h
+++ b/block.h
@@ -221,6 +221,7 @@ BlockDriverAIOCB *bdrv_aio_ioctl(BlockDriverState *bs,
/* Do post incoming migration operations
* Ex: flush mutable metadata
+ * Ex: check image
*/
void bdrv_post_incoming_migration(BlockDriverState *bs);
void bdrv_post_incoming_migration_all(void);
diff --git a/block/qed.c b/block/qed.c
index 25558fc..f6300af 100644
--- a/block/qed.c
+++ b/block/qed.c
@@ -1529,6 +1529,19 @@ static int bdrv_qed_change_backing_file(BlockDriverState
*bs,
return ret;
}
+static void bdrv_qed_check_if_needed(BlockDriverState *bs)
+{
+ /* close the block device if the verification fail */
+ if (check_image_if_needed(bs)) {
+ bdrv_close(bs);
+ }
+}
+
+static void bdrv_qed_post_incoming_migration(BlockDriverState *bs)
+{
+ bdrv_qed_check_if_needed(bs);
+}
+
static int bdrv_qed_check(BlockDriverState *bs, BdrvCheckResult *result)
{
BDRVQEDState *s = bs->opaque;
@@ -1581,6 +1594,7 @@ static BlockDriver bdrv_qed = {
.bdrv_getlength = bdrv_qed_getlength,
.bdrv_get_info = bdrv_qed_get_info,
.bdrv_change_backing_file = bdrv_qed_change_backing_file,
+ .bdrv_post_incoming_migration = bdrv_qed_post_incoming_migration,
.bdrv_check = bdrv_qed_check,
};
diff --git a/migration.c b/migration.c
index 5ac31a3..d59042c 100644
--- a/migration.c
+++ b/migration.c
@@ -95,6 +95,7 @@ void process_incoming_migration(QEMUFile *f)
bdrv_clear_incoming_migration_all();
/* Execute post incoming migration operations :
* for qcow2 make sure to flush mutable metadata
+ * for QED check image
**/
bdrv_post_incoming_migration_all();
--
1.7.7.6
- [Qemu-devel] [RFC PATCH 00/10] make qed and live migration usage safe, 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, 2012/03/06
- [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