cdrom_id: add and use ID_CDROM_MEDIA to decide if we run vol_id

Some broken mobile phones offer a faked cdrom drive with a media
without any tracks.
This commit is contained in:
Kay Sievers 2009-04-21 03:27:14 +02:00
parent 540f46698d
commit f907449eee
2 changed files with 6 additions and 1 deletions

View file

@ -76,6 +76,7 @@ static unsigned int cd_mrw;
static unsigned int cd_mrw_w;
/* media info */
static unsigned int cd_media;
static unsigned int cd_media_cd_rom;
static unsigned int cd_media_cd_r;
static unsigned int cd_media_cd_rw;
@ -325,6 +326,8 @@ static int cd_profiles(struct udev *udev, int fd)
return -1;
}
cd_media = 1;
switch (cur_profile) {
case 0x03:
case 0x04:
@ -625,6 +628,8 @@ print:
if (cd_mrw_w)
printf("ID_CDROM_MRW_W=1\n");
if (cd_media)
printf("ID_CDROM_MEDIA=1\n");
if (cd_media_mo)
printf("ID_CDROM_MEDIA_MO=1\n");
if (cd_media_mrw)

View file

@ -55,7 +55,7 @@ ENV{DEVTYPE}=="partition", ENV{ID_PATH}=="?*", SYMLINK+="disk/by-path/$env{ID_PA
ENV{DEVTYPE}=="disk", KERNEL!="sd*|sr*", ATTR{removable}=="1", GOTO="persistent_storage_end"
# probe filesystem metadata of optical drives which have a media inserted
KERNEL=="sr*", ENV{ID_CDROM_MEDIA_TRACK_COUNT}=="?*", IMPORT{program}="vol_id --export --skip-raid --offset=$env{ID_CDROM_MEDIA_SESSION_LAST_OFFSET} $tempnode"
KERNEL=="sr*", ENV{ID_CDROM_MEDIA}=="?*", IMPORT{program}="vol_id --export --skip-raid --offset=$env{ID_CDROM_MEDIA_SESSION_LAST_OFFSET} $tempnode"
# probe filesystem metadata of disks
KERNEL!="sr*", IMPORT{program}="vol_id --export $tempnode"