the actual problem is that the return value EBUSY got overwritten in sys/dev/ata/ata-queue.c. so even when the device returns EBUSY the ioctl call returned EIO. what your patch does is to wait for a specific time until it gives up calling ioctl(fd, CDIOCEJECT). with the changes to sys/dev/ata/atapi-cd.c the EBUSY return value doesn't get overwritten anymore. now when an ioctl call returns EIO you don't have to repeat doing the ioctl. EIO really means EIO! only if the return value is EBUSY you have to repeat doing an ioctl until it returns != EBUSY. alex Carlos A. M. dos Santos schrieb am 2009-01-09: > On Thu, Jan 8, 2009 at 8:59 PM, Giorgos Keramidas > <keramida_at_freebsd.org> wrote: > > On Thu, 08 Jan 2009 18:13:14 +0100 (CET), Alexander Best > > <alexbestms_at_math.uni-muenster.de> wrote: > >> could somebody please commit the following patch to dev/ata? it > >> fixes > >> a nasty bug during fixation in burncd. the bug exists in RELENG6, > >> RELENG7 and HEAD (and maybe RELENG5): > >> http://www.freebsd.org/cgi/query-pr.cgi?prp=95979-3-txt&n=/patch > >> the whole PR can be found here: > >> http://www.freebsd.org/cgi/query-pr.cgi?pr=95979 > > I think Soren is the best person to look into this bug (Cc: added). > > Soren, what do you think? Does the patch at bin/95979 look like a > > nice > > change to commit? I just saw this PR so I haven't tried the patch > > on my > > laptop's CURRENT yet, but I can confirm that burning CD-ROMs and > > DVDs is > > busted in my laptop for a few weeks now. > I proposed a solution a similar problem (bin/123693), but patching > burncd instead of the kernel. I'm attaching the patch, for your > convenience.Received on Fri Jan 09 2009 - 13:12:14 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:40 UTC