We already track it in BlockDriverState. Just like tray open/close state, we should track it in the device models instead, because it's device state.
Signed-off-by: Markus Armbruster <arm...@redhat.com> --- hw/scsi-disk.c | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/hw/scsi-disk.c b/hw/scsi-disk.c index ff52d87..a220426 100644 --- a/hw/scsi-disk.c +++ b/hw/scsi-disk.c @@ -75,6 +75,7 @@ struct SCSIDiskState char *serial; SCSISense sense; bool tray_open; + bool tray_locked; SCSIDriveKind drive_kind; }; @@ -893,6 +894,7 @@ static int scsi_disk_emulate_command(SCSIDiskReq *r, uint8_t *outbuf) scsi_disk_emulate_start_stop(r); break; case ALLOW_MEDIUM_REMOVAL: + s->tray_locked = req->cmd.buf[4] & 1; bdrv_set_locked(s->bs, req->cmd.buf[4] & 1); break; case READ_CAPACITY: -- 1.7.2.3