Am 07.09.2011 09:14, schrieb Paolo Bonzini: > On 09/06/2011 06:58 PM, Markus Armbruster wrote: >> Use a subsection, so that migration to older version still works, >> provided the tray is closed and unlocked. >> >> Signed-off-by: Markus Armbruster<arm...@redhat.com> >> --- >> hw/ide/core.c | 32 ++++++++++++++++++++++++++++++++ >> 1 files changed, 32 insertions(+), 0 deletions(-) >> >> diff --git a/hw/ide/core.c b/hw/ide/core.c >> index b1a73ee..30cb7de 100644 >> --- a/hw/ide/core.c >> +++ b/hw/ide/core.c >> @@ -2058,6 +2058,22 @@ static bool ide_drive_pio_state_needed(void *opaque) >> || (s->bus->error_status& BM_STATUS_PIO_RETRY); >> } >> >> +static int ide_tray_state_post_load(void *opaque, int version_id) >> +{ >> + IDEState *s = opaque; >> + >> + bdrv_eject(s->bs, s->tray_open); >> + bdrv_lock_medium(s->bs, s->tray_locked); >> + return 0; >> +} >> + >> +static bool ide_tray_state_needed(void *opaque) >> +{ >> + IDEState *s = opaque; >> + >> + return s->tray_open || s->tray_locked; > > I wonder if the most common case is this, or rather "tray closed and > locked". Perhaps it depends (for Windows it is likely unlocked, for > Linux locked). In any case there's time before 1.0 to fix this, so
I would argue that the common case even for Linux is that you don't have a CD mounted (probably the drive is empty anyway). Kevin