Jason Wang <jasow...@redhat.com> wrote:
> We need to keep DIR register unchanged across migration, but currently it
> depends on the media_changed flags from block layer. Since we do not
> save/restore it and the bdrv_open() called in dest node may set the
> media_changed flag when trying to open floppy image, guest driver may think 
> the
> floppy have changed after migration. To fix this, a new filed media_changed in
> FDrive strcutre was introduced in order to save and restore the it from block
> layer through pre_save/post_load callbacks.
>
> Signed-off-by: Jason Wang <jasow...@redhat.com>
> ---
>
> Changed from V3:
> According to Juan's suggestions, back to v2 and just add the checking for
> media_changed "changed" in .needed.
> Do not fail the migration when src have a drive but dest does not, we can 
> treat
> it as user ejected the floppy.
>
> Changed from V2:
> According to Paolo's suggestions, a default_migration_media_changed property 
> was
> added to avoid saving subsections as much as possible. Its was set 
> media_changed
> in pre_load callback and then we can avoid the saving when it was equal to the
> media_changed when migrating the FDrive. Behaviors of elder machine types are
> also kept through compat_props.
>
> Changed from V1:
> Check the drive->bs during post_load.
>
>  hw/fdc.c |   51 ++++++++++++++++++++++++++++++++++++++++++++++++++-
>  1 files changed, 50 insertions(+), 1 deletions(-)
>

Reviewed-by: Juan Quintela <quint...@redhat.com>

This solution is way less invasive that v3, and achieves exactly the
same compatibility.

Reply via email to