Messages in this thread Patch in this message |  | | Date | Fri, 1 Sep 2000 13:15:06 +0200 | From | Jens Axboe <> | Subject | Re: Bug: remounting CD-ROM drives does not lock/unlock drive |
| |
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 <axboe@suse.de> * 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); } |  |