diff options
author | BenoƮt Canet <benoit.canet@gmail.com> | 2012-03-23 08:36:51 +0100 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2012-04-05 16:28:27 +0200 |
commit | c82954e529929c2d650589d8bccaaf19dec33431 (patch) | |
tree | 87ca05d236b4f5993066715a1a0e46ef26c51e1c /block | |
parent | ed9d4205cecb2f6c06821cb9d8fe9e1ca5f9b8ab (diff) | |
download | qemu-c82954e529929c2d650589d8bccaaf19dec33431.zip |
qed: add bdrv_invalidate_cache to be called after incoming live migration
The QED image is reopened to flush metadata and check consistency.
Signed-off-by: Benoit Canet <benoit.canet@gmail.com>
Reviewed-by: Stefan Hajnoczi <stefanha@gmail.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'block')
-rw-r--r-- | block/qed.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/block/qed.c b/block/qed.c index 19d87f3bef..a5e9d57082 100644 --- a/block/qed.c +++ b/block/qed.c @@ -1510,6 +1510,15 @@ static int bdrv_qed_change_backing_file(BlockDriverState *bs, return ret; } +static void bdrv_qed_invalidate_cache(BlockDriverState *bs) +{ + BDRVQEDState *s = bs->opaque; + + bdrv_qed_close(bs); + memset(s, 0, sizeof(BDRVQEDState)); + bdrv_qed_open(bs, bs->open_flags); +} + static int bdrv_qed_check(BlockDriverState *bs, BdrvCheckResult *result) { BDRVQEDState *s = bs->opaque; @@ -1561,6 +1570,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, }; |