From: "Benoît Canet" <benoit.canet@gmail.com>
To: qemu-devel@nongnu.org
Cc: kwolf@redhat.com, pbonzini@redhat.com,
"Benoît Canet" <benoit.canet@gmail.com>,
stefanha@linux.vnet.ibm.com
Subject: [Qemu-devel] [PATCH V2 4/7] qed: add bdrv_invalidate_cache to be called after incoming live migration
Date: Wed, 21 Mar 2012 16:52:01 +0100 [thread overview]
Message-ID: <1332345124-381-5-git-send-email-benoit.canet@gmail.com> (raw)
In-Reply-To: <1332345124-381-1-git-send-email-benoit.canet@gmail.com>
The QED image is reopened to flush metadata and check consistency.
Signed-off-by: Benoit Canet <benoit.canet@gmail.com>
---
block/qed.c | 15 +++++++++++++++
block/qed.h | 1 +
2 files changed, 16 insertions(+), 0 deletions(-)
diff --git a/block/qed.c b/block/qed.c
index a041d31..c47272c 100644
--- a/block/qed.c
+++ b/block/qed.c
@@ -375,6 +375,10 @@ static int bdrv_qed_open(BlockDriverState *bs, int flags)
int ret;
s->bs = bs;
+
+ /* backup flags for bdrv_qed_invalidate_cache */
+ s->flags = flags;
+
QSIMPLEQ_INIT(&s->allocating_write_reqs);
ret = bdrv_pread(bs->file, 0, &le_header, sizeof(le_header));
@@ -1516,6 +1520,16 @@ static int bdrv_qed_change_backing_file(BlockDriverState *bs,
return ret;
}
+static void bdrv_qed_invalidate_cache(BlockDriverState *bs)
+{
+ BDRVQEDState *s = bs->opaque;
+ int flags = s->flags;
+
+ bdrv_qed_close(bs);
+ memset(s, 0, sizeof(BDRVQEDState));
+ bdrv_qed_open(bs, flags);
+}
+
static int bdrv_qed_check(BlockDriverState *bs, BdrvCheckResult *result)
{
BDRVQEDState *s = bs->opaque;
@@ -1568,6 +1582,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_invalidate_cache = bdrv_qed_invalidate_cache,
.bdrv_check = bdrv_qed_check,
};
diff --git a/block/qed.h b/block/qed.h
index 62624a1..cb1ebd8 100644
--- a/block/qed.h
+++ b/block/qed.h
@@ -153,6 +153,7 @@ typedef struct QEDAIOCB {
typedef struct {
BlockDriverState *bs; /* device */
+ int flags; /* open flags */
uint64_t file_size; /* length of image file, in bytes */
QEDHeader header; /* always cpu-endian */
--
1.7.7.6
next prev parent reply other threads:[~2012-03-21 15:52 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-21 15:51 [Qemu-devel] [PATCH V2 0/7] Make QED with live migration safe Benoît Canet
2012-03-21 15:51 ` [Qemu-devel] [PATCH V2 1/7] block: Add new BDRV_O_INCOMING flag to notice incoming live migration Benoît Canet
2012-03-21 15:51 ` [Qemu-devel] [PATCH V2 2/7] block: add a function to clear incoming live migration flags Benoît Canet
2012-03-21 15:52 ` [Qemu-devel] [PATCH V2 3/7] blockdev: open images with BDRV_O_INCOMING on incoming live migration Benoît Canet
2012-03-21 15:52 ` Benoît Canet [this message]
2012-03-22 13:21 ` [Qemu-devel] [PATCH V2 4/7] qed: add bdrv_invalidate_cache to be called after " Stefan Hajnoczi
2012-03-22 14:15 ` Benoît Canet
2012-03-22 14:17 ` Paolo Bonzini
2012-03-22 15:30 ` Stefan Hajnoczi
2012-03-21 15:52 ` [Qemu-devel] [PATCH V2 5/7] migration: clear BDRV_O_INCOMING flags on end of " Benoît Canet
2012-03-21 15:52 ` [Qemu-devel] [PATCH V2 6/7] qed: honor BDRV_O_INCOMING for " Benoît Canet
2012-03-21 15:52 ` [Qemu-devel] [PATCH V2 7/7] qed: remove incoming live migration blocker Benoît Canet
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=1332345124-381-5-git-send-email-benoit.canet@gmail.com \
--to=benoit.canet@gmail.com \
--cc=kwolf@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@linux.vnet.ibm.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).