https://bugzilla.novell.com/show_bug.cgi?id=390204
User teheo@novell.com added comment
https://bugzilla.novell.com/show_bug.cgi?id=390204#c13
--- Comment #13 from Tejun Heo 2008-06-08 21:57:40 MDT ---
Okay, the difference is from the addition of cdrom_get_media_event() call to
both sr_drive_status() and ide_cdrom_drive_status(). Previously, the cdrom
driver can't differentiate between tray closed w/ no media and tray open and
always returned tray open, which triggers close and retry in the open logic
which probably have delayed things enough to get the media recognized.
Now the cdrom driver can discern between tray closed w/o media and device not
ready for other reasons and returns -ENOMEDIUM on the former. This is all good
and dandy but the problem seems that some drives report no media right after
the tray is closed but it hasn't properly detected the media yet.
It seems the only way to work around the problem is via sensible retries (e.g.
try three times 5 secs apart) and I don't think we can add that type of retry
logic into cdrom open path. Please note that the previous logic wasn't water
proof. Some drives can take longer to recognize the media is there and could
have failed the in-kernel retry too. Also, reading the media can take quite
some time and during that period the drive reports media present but device not
ready. The driver will retry the command (e.g. READ TOC for open) five times
but all of them can fail w/ EMEDIUMTYPE.
I think adding userland retries is necessary, at least for now.
--
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.