]> git.proxmox.com Git - mirror_qemu.git/commitdiff
qed: add bdrv_invalidate_cache to be called after incoming live migration
authorBenoît Canet <benoit.canet@gmail.com>
Fri, 23 Mar 2012 07:36:51 +0000 (08:36 +0100)
committerKevin Wolf <kwolf@redhat.com>
Thu, 5 Apr 2012 14:28:27 +0000 (16:28 +0200)
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>
block/qed.c

index 19d87f3bef9b4aec94cf965b535b807a83d2711f..a5e9d570828e9a48619afcabfcdb983d392affad 100644 (file)
@@ -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,
 };