Messages in this thread | | | Date | Wed, 22 Sep 2010 09:38:05 +0200 | From | Tejun Heo <> | Subject | Re: [REGRESSION] cdrom drive doesn't detect removal |
| |
Hello,
On 09/22/2010 01:09 AM, Maxim Levitsky wrote: > I just did a strace on udisks, and it is pretty much self explanatory. > (While CD is mounted). > > open("/dev/sr0", O_RDONLY|O_EXCL|O_NONBLOCK) = -1 EBUSY (Device or resource busy) > poll([{fd=5, events=POLLIN}, {fd=3, events=POLLIN}], 2, 1997) = 0 (Timeout) > open("/dev/sr0", O_RDONLY|O_EXCL|O_NONBLOCK) = -1 EBUSY (Device or resource busy) > poll([{fd=5, events=POLLIN}, {fd=3, events=POLLIN}], 2, 1997) = 0 (Timeout) > open("/dev/sr0", O_RDONLY|O_EXCL|O_NONBLOCK) = -1 EBUSY (Device or resource busy) > poll([{fd=5, events=POLLIN}, {fd=3, events=POLLIN}], 2, 1997) = 0 (Timeout) > open("/dev/sr0", O_RDONLY|O_EXCL|O_NONBLOCK) = -1 EBUSY (Device or resource busy) > > Sure, a filesystem is mounted, so exclusive access fails... > > So, we end up with impossible to solve problem. We want on one hand > to guard the burner against polling programs that disturb it, but > one the other hand we must do polling to check CD status. > > Unless the kernel does the polling, but then we also must stop it > when burning is done. I think that we need new ioctl in the CD > driver that would give absolute access to the burning application, > and lock it fully.
One thing I don't get is why the behavior changed after the claiming block patch. Can you please trace udisks from a previous working kernel?
Thanks.
-- tejun
| |