LS-120 eject does not work with libata

From: Ondrej Zary
Date: Fri Mar 06 2009 - 12:34:47 EST


Hello,
I remember fixing LS-120 eject in ide-floppy 3 years ago.
Found this time thatit does not work with libata (2.6.28):

# eject -v /dev/sda
eject: device name is `/dev/sda'
eject: expanded name is `/dev/sda'
eject: `/dev/sda' is not mounted
eject: `/dev/sda' is not a mount point
eject: `/dev/sda' is a multipartition device
eject: trying to eject `/dev/sda' using CD-ROM eject command
eject: CD-ROM eject command failed
eject: trying to eject `/dev/sda' using SCSI commands
eject: SCSI eject succeeded

# strace eject -v /dev/sda
[...]
write(1, "eject: trying to eject `/dev/sda"..., 54eject: trying to eject `/dev/sda' using SCSI commands
) = 54
ioctl(3, SG_GET_VERSION_NUM, 0xbfbaeac4) = 0
ioctl(3, SG_IO, 0xbfbaea50) = 0
ioctl(3, SG_IO, 0xbfbaea50) = 0
ioctl(3, SG_IO, 0xbfbaea50) = 0
ioctl(3, BLKRRPART, 0xbfbaea50) = 0
write(1, "eject: SCSI eject succeeded\n", 28eject: SCSI eject succeeded
) = 28
[...]

It looks like everything is OK. The only problem is that the disk
does not eject (only spins up).


It does work when using SCSI generic device:
# eject -v /dev/sg0
eject: device name is `/dev/sg0'
eject: expanded name is `/dev/sg0'
eject: `/dev/sg0' is not mounted
eject: `/dev/sg0' is not a mount point
eject: `/dev/sg0' is not a multipartition device
eject: trying to eject `/dev/sg0' using CD-ROM eject command
eject: CD-ROM eject command failed
eject: trying to eject `/dev/sg0' using SCSI commands
eject: SCSI eject succeeded

The disk spins up and does some reads (most probably useless) and then ejects.

Now I wonder where the problem is...

--
Ondrej Zary
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/