}
break;
case MEDIA_CDROM:
- bdrv_set_removable(dinfo->bdrv, 1);
dinfo->media_cd = 1;
break;
}
break;
case IF_SD:
- /* FIXME: This isn't really a floppy, but it's a reasonable
- approximation. */
case IF_FLOPPY:
- bdrv_set_removable(dinfo->bdrv, 1);
- break;
case IF_PFLASH:
case IF_MTD:
break;
static int eject_device(Monitor *mon, BlockDriverState *bs, int force)
{
- if (!bdrv_is_removable(bs)) {
+ if (!bdrv_dev_has_removable_media(bs)) {
qerror_report(QERR_DEVICE_NOT_REMOVABLE, bdrv_get_device_name(bs));
return -1;
}
- if (!force && bdrv_is_locked(bs)) {
+ if (!force && !bdrv_dev_is_tray_open(bs)
+ && bdrv_dev_is_medium_locked(bs)) {
qerror_report(QERR_DEVICE_LOCKED, bdrv_get_device_name(bs));
return -1;
}