diff options
author | Markus Armbruster <armbru@redhat.com> | 2011-05-16 15:04:56 +0200 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2011-05-19 10:26:21 +0200 |
commit | 95b5edcd92d64c7b8fe9f2e3e0725fdf84be0dfa (patch) | |
tree | 114ca4bf6d4715c6144d35e2c111be77cdecfeec /hw/scsi-disk.c | |
parent | d8aeeb31d53a07a0cce36c7bcf53684953c2e445 (diff) |
blockdev: Store -drive option media in DriveInfo
DriveInfo is closely tied to -drive, and like -drive, it mixes
information about host and guest part of the block device. Unlike
DriveInfo, BlockDriverState should be about the host part only.
One of the remaining guest bits there is the "type hint". -drive
option media sets it, and qdevs "ide-drive", "scsi-disk" and non-qdev
IF_XEN devices check it to pick HD vs. CD.
Communicate -drive option media via new DriveInfo member media_cd
instead.
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'hw/scsi-disk.c')
-rw-r--r-- | hw/scsi-disk.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/hw/scsi-disk.c b/hw/scsi-disk.c index 8df85185db..397b9d6b39 100644 --- a/hw/scsi-disk.c +++ b/hw/scsi-disk.c @@ -1295,12 +1295,13 @@ static int scsi_cd_initfn(SCSIDevice *dev) static int scsi_disk_initfn(SCSIDevice *dev) { SCSIDriveKind kind; + DriveInfo *dinfo; if (!dev->conf.bs) { kind = SCSI_HD; /* will die in scsi_initfn() */ } else { - kind = bdrv_get_type_hint(dev->conf.bs) == BDRV_TYPE_CDROM - ? SCSI_CD : SCSI_HD; + dinfo = drive_get_by_blockdev(dev->conf.bs); + kind = dinfo->media_cd ? SCSI_CD : SCSI_HD; } return scsi_initfn(dev, kind); |