• K
    block: Update image size in bdrv_invalidate_cache() · 3456a8d1
    Kevin Wolf 提交于
    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: NKevin Wolf <kwolf@redhat.com>
    Signed-off-by: NStefan Hajnoczi <stefanha@redhat.com>
    3456a8d1
block.c 151.8 KB