qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Benoît Canet" <benoit.canet@gmail.com>
To: qemu-devel@nongnu.org
Cc: pbonzini@redhat.com, "Benoît Canet" <benoit.canet@gmail.com>,
	stefanha@linux.vnet.ibm.com, wolf@redhat.com
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	[thread overview]
Message-ID: <1331055149-10982-9-git-send-email-benoit.canet@gmail.com> (raw)
In-Reply-To: <1331055149-10982-1-git-send-email-benoit.canet@gmail.com>

The bs is closed on verification failure to avoid further corruptions.

Signed-off-by: Benoit Canet <benoit.canet@gmail.com>
---
 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

  parent reply	other threads:[~2012-03-06 17:33 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-06 17:32 [Qemu-devel] [RFC PATCH 00/10] make qed and live migration usage safe Benoît Canet
2012-03-06 17:32 ` [Qemu-devel] [RFC PATCH 01/10] block: Add new BDRV_O_INCOMING flag to notice incoming live migration Benoît Canet
2012-03-06 17:32 ` [Qemu-devel] [RFC PATCH 02/10] block: add a function to set " Benoît Canet
2012-03-20 15:57   ` Stefan Hajnoczi
2012-03-06 17:32 ` [Qemu-devel] [RFC PATCH 03/10] block: add a function to clear " Benoît Canet
2012-03-06 17:32 ` [Qemu-devel] [RFC PATCH 04/10] block: rename *_invalidate_cache_* to *_post_incoming_migration_* Benoît Canet
2012-03-06 17:32 ` [Qemu-devel] [RFC PATCH 05/10] migration: inform the block layer of incoming live status Benoît Canet
2012-03-06 17:32 ` [Qemu-devel] [RFC PATCH 06/10] block: open images with BDRV_O_INCOMING on incoming live migration Benoît Canet
2012-03-06 17:32 ` [Qemu-devel] [RFC PATCH 07/10] qed: extract image checking into check_image_if_needed Benoît Canet
2012-03-06 17:32 ` Benoît Canet [this message]
2012-03-20 15:42   ` [Qemu-devel] [RFC PATCH 08/10] qed: add bdrv_post_incoming_migration operation checking the image Stefan Hajnoczi
2012-03-20 15:52     ` Benoît Canet
2012-03-20 16:05       ` Stefan Hajnoczi
2012-03-06 17:32 ` [Qemu-devel] [RFC PATCH 09/10] qed: honor BDRV_O_INCOMING for incoming live migration Benoît Canet
2012-03-06 17:32 ` [Qemu-devel] [RFC PATCH 10/10] qed: remove incoming live migration blocker Benoît Canet
2012-03-06 20:10 ` [Qemu-devel] [RFC PATCH 00/10] make qed and live migration usage safe Benoît Canet
2012-03-16 12:40 ` Benoît Canet
2012-03-20 15:47 ` Stefan Hajnoczi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1331055149-10982-9-git-send-email-benoit.canet@gmail.com \
    --to=benoit.canet@gmail.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@linux.vnet.ibm.com \
    --cc=wolf@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).