mirror of
https://github.com/systemd/systemd.git
synced 2026-07-18 21:40:14 +00:00
cdrom_id: suppress ID_CDROM_MEDIA_STATE=blank for plain non-writable CDROM media
Some broken fake cdrom drives return ID_CDROM_MEDIA_STATE=blank. $ /lib/udev/cdrom_id -d /dev/sr1 main: probing: '/dev/sr1' cd_inquiry: INQUIRY: [Nokia ][S60 ][1.0 ] cd_profiles: GET CONFIGURATION: number of profiles 76 cd_profiles: current profile 0x08 cd_media_toc: READ TOC: len: 12 cd_media_toc: last track 1 starts at block 0 cd_media_info: disk type 00 ID_CDROM=1 ID_CDROM_MRW=1 ID_CDROM_MRW_W=1 ID_CDROM_MEDIA=1 ID_CDROM_MEDIA_CD=1 ID_CDROM_MEDIA_STATE=blank Others work fine, but ID_CDROM_MEDIA_STATE is not needed for non-writable CDROM media: $ /lib/udev/cdrom_id -d /dev/sr1 main: probing: '/dev/sr1' cd_inquiry: INQUIRY: [SanDisk ][U3 Cruzer Micro ][8.02] cd_profiles: GET CONFIGURATION: number of profiles 72 cd_profiles: current profile 0x08 cd_media_toc: READ TOC: len: 20 cd_media_toc: track=1 info=0x4(data) start_block=0 cd_media_toc: last track 1 starts at block 0 cd_media_info: disk type 00 ID_CDROM=1 ID_CDROM_MRW=1 ID_CDROM_MRW_W=1 ID_CDROM_MEDIA=1 ID_CDROM_MEDIA_CD=1 ID_CDROM_MEDIA_STATE=complete ID_CDROM_MEDIA_SESSION_COUNT=1 ID_CDROM_MEDIA_TRACK_COUNT=1 ID_CDROM_MEDIA_TRACK_COUNT_DATA=1
This commit is contained in:
@@ -426,8 +426,10 @@ static int cd_media_info(struct udev *udev, int fd)
|
||||
|
||||
info(udev, "disk type %02x\n", header[8]);
|
||||
|
||||
if ((header[2] & 3) < 4)
|
||||
/* exclude plain CDROM, some fake cdroms return 0 for "blank" media here */
|
||||
if (!cd_media_cd_rom && (header[2] & 3) < 4)
|
||||
cd_media_state = media_status[header[2] & 3];
|
||||
|
||||
if ((header[2] & 3) != 2)
|
||||
cd_media_session_next = header[10] << 8 | header[5];
|
||||
cd_media_session_count = header[9] << 8 | header[4];
|
||||
|
||||
Reference in New Issue
Block a user