ide-floppy - software eject not working with LS-120 drive
PATCH RESEND 1/1 ide-floppy - software eject not working with LS-120 drive
This is a resend because I didn't get any reply before.
The problem (eject not working on ATAPI LS-120 drive) is caused by idefloppy_ioctl() function which *first* tries generic_ide_ioctl() and *only* if it fails with -EINVAL, proceeds with the specific ioctls. The generic eject command fails with something other than -EINVAL and the specific one is never executed. This patch fixes it by first going through the internal ioctls and only
trying generic_ide_ioctl() if none of them matches.
Signed-off-by Ondrej Zary <[email protected]>
Signature · 1 line
Ondrej Zary
drivers/ide/ide-floppy.c +2 -4
@@ -2038,11 +2038,9 @@struct ide_floppy_obj *floppy =ide_floppy_g (bdev->bd_disk);ide_drive_t *drive = floppy->drive;void __user *argp = (void __user *)arg; -int err =generic_ide_ioctl (drive, file, bdev, cmd, arg); +int err;int prevent = (arg) ?1 :0 ;idefloppy_pc_t pc; -if (err != -EINVAL ) -return err;switch (cmd) {case CDROMEJECT :
@@ -2094,7 +2092,7 @@case IDEFLOPPY_IOCTL_FORMAT_GET_PROGRESS :return idefloppy_get_format_progress (drive, argp); } -return -EINVAL ; +return generic_ide_ioctl (drive, file, bdev, cmd, arg); }static int idefloppy_media_changed (struct gendisk *disk)
Bartlomiej Zolnierkiewicz
Appliedapplied