Red Hat Bugzilla – Bug 128249
cdrecord should use O_EXCL
Last modified: 2007-11-30 17:10:46 EST
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7)
Description of problem:
cdrecord doesn't open the CD device with O_EXCL. This is bad since
O_EXCL is used to lock other disc media detection programs that poll
for media out. Such as magicdev or hal.
My impression is that on some drives this doesn't matter but on a
select few it does result in bad burns.
O_EXCL is in mainline 2.6.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
[david@ixus david]$ strace cdrecord -v speed=2 dev=/dev/hdc
FC2-test1-i386-disc4.iso > cdout 2>&1
[david@ixus david]$ cat cdout |grep "open(\"/dev/hdc"
open("/dev/hdc", O_RDWR|O_NONBLOCK) = 3
Actual Results: I burned a CD and using strace I saw that the device
was opened with O_EXCL
Expected Results: cdrecord should open the device
It had the patch modified in version 8:2.0-8, but there's no mention
of it being removed in subsequent versions.
this patch is really hard to do with all the new device layers...
cdrecord opens _ALL_ cdroms for its pseudo scsi-bus-mapping and then
uses the fd for the appropriate device...
I patched growisofs to do the right thing... but cdrecord needs more
hours of thinking this through :-/
*** Bug 132756 has been marked as a duplicate of this bug. ***
done for the case where you directly specify the device per devnode.