[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] block: Update image size in bdrv_invalidate_cac
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] [PATCH] block: Update image size in bdrv_invalidate_cache() |
Date: |
Tue, 11 Mar 2014 13:47:41 +0100 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Tue, Mar 11, 2014 at 10:58:39AM +0100, Kevin Wolf wrote:
> After migration has completed, we call bdrv_invalidate_cache() so that
> drivers which cache some data drop their stale copy of the data and
> reread it from the image file to get a new version of data that the
> source modified while the migration was running.
>
> Reloading metadata from the image file is useless, though, if the size
> of the image file stays stale (this is a value that is cached for all
> image formats in block.c). Reads from (meta)data after the old EOF
> return only zeroes, causing image corruption.
>
> We need to update bs->total_sectors in all layers that could potentially
> have changed their size (i.e. backing files are not a concern - if they
> are changed, we're in bigger trouble)
>
> Signed-off-by: Kevin Wolf <address@hidden>
> ---
> block.c | 10 +++++++++-
> block/qcow2.c | 2 ++
> block/qed.c | 3 +++
> 3 files changed, 14 insertions(+), 1 deletion(-)
Thanks, applied to my block tree:
https://github.com/stefanha/qemu/commits/block
Stefan