From: BenoƮt Canet <benoit.ca...@gmail.com> The QED image is reopened to flush metadata and check consistency.
Signed-off-by: Benoit Canet <benoit.ca...@gmail.com> Reviewed-by: Stefan Hajnoczi <stefa...@gmail.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> --- block/qed.c | 10 ++++++++++ 1 files changed, 10 insertions(+), 0 deletions(-) diff --git a/block/qed.c b/block/qed.c index 19d87f3..a5e9d57 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, }; -- 1.7.6.5