--- linux/drivers/ide/ide-floppy.c.old Wed Feb 21 15:53:20 2001 +++ linux/drivers/ide/ide-floppy.c Wed Feb 21 15:55:23 2001 @@ -1517,15 +1517,21 @@ unsigned int cmd, unsigned long arg) { idefloppy_pc_t pc; + int prevent = (arg) ? 1 : 0; switch (cmd) { case CDROMEJECT: + prevent = 0; + /* fall through */ + case CDROM_LOCKDOOR: if (drive->usage > 1) return -EBUSY; - idefloppy_create_prevent_cmd (&pc, 0); - (void) idefloppy_queue_pc_tail (drive, &pc); - idefloppy_create_start_stop_cmd (&pc, 2); + idefloppy_create_prevent_cmd (&pc, prevent); (void) idefloppy_queue_pc_tail (drive, &pc); + if (cmd == CDROMEJECT) { + idefloppy_create_start_stop_cmd (&pc, 2); + (void) idefloppy_queue_pc_tail (drive, &pc); + } return 0; case IDEFLOPPY_IOCTL_FORMAT_SUPPORTED: return (0);