On Fri, Sep 01 2000, Rene Mayrhofer wrote:
> Ok, now I think to know what you are meaning: The program locking the door
> should stay active until the CD-ROM should be unlocked, right ?
No, not necessarily. What matters is the open count of the drive. Currently
it will not unlock a tray, that is opened by other programs as well.
> I always though about issuing some single call to lock or unlock the drive
> (e.g. setcd), but I never thought about this. What do I have to do to make
> this possible ? Could you give me some hint on how to allow root to unlock
> it in a clean way ? I wouldn't be very happy to apply special 'CD-ROM
> bootable interim hack' patches to each kernel I build for the project. Is
> there a way to do this general enough so that it can go into the main
> kernel (maybe another config option in /proc/sys/dev/cdrom if root should
> be allowed to unlock under all conditions) ?
I don't think that allowing root to unlock a busy tray is that big a
deal, we have to assume he/she knows what they are doing anyway. But
for now, you can try this patch.
--
* Jens Axboe <[EMAIL PROTECTED]>
* SuSE Labs
--- drivers/cdrom/cdrom.c~ Fri Sep 1 13:14:23 2000
+++ drivers/cdrom/cdrom.c Fri Sep 1 13:14:42 2000
@@ -1604,7 +1604,7 @@
return -EDRIVE_CANT_DO_THIS;
keeplocked = arg ? 1 : 0;
/* don't unlock the door on multiple opens */
- if ((cdi->use_count != 1) && !arg)
+ if ((cdi->use_count != 1) && !arg && !capable(CAP_SYS_ADMIN))
return -EBUSY;
return cdo->lock_door(cdi, arg);
}