Re: SCSI tape load problem with Exabyte Drive

Kai Makisara (Kai.Makisara@kolumbus.fi)
Wed, 17 Oct 2001 09:43:42 +0300 (EEST)


On Tue, 16 Oct 2001, Jeff V. Merkey wrote:

>
>
> On 2.4.6 with st and AICXXXX driver, issuance of an MTLOAD command
> via st ioctl() calls results in a unit attention and failure of
> the drive while loading a tape from an EXB-480 robotics tape
> library.
>
> Code which generates this error is attached. The error will not
> clear unless the code first closes the open handle to the device,
> then reopens the handle and retries the load command. The failure
> scenario is always the same. The first MTLOAD command triggers
> the tape drive to load the tape, then all subsequent commands
> fail until the handle is closed and the device is reopened and
> a second MTLOAD command gets issued, then the drive starts
> working.
>
This is a "feature" of the st driver: if you get UNIT ATTENTION anywhere
else than within open(), it is considered an error. In most cases this is
true but MTLOAD is an exception. I have not thought about this exception
and noone before you has reported it ;-)

As you say, the workaround is to close and reopen the device after MTLOAD.
You should not need the second MTLOAD.

I will think about a fix to this problem. The basic reason for not
allowing UNIT ATTENTION anywhere is that flushing the driver state
properly in any condition is complicated and there has been no legitimate
reason to allow this. However, here it should be sufficient to use a no-op
SCSI command after LOAD to get the UNIT ATTENTION.

Kai

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