sa: write returns 0 = LEOM?
Matthew Jacob
mj at feral.com
Sat Jun 19 18:05:26 UTC 2010
On 6/16/2010 3:52 PM, Dustin J. Mitchell wrote:
> I'm investigating a user bug report in Amanda:
> http://forums.zmanda.com/showthread.php?t=2832
>
> The problem boils down to a write(2) call for a SCSI tape device
> (/dev/nsa0) returning 0 after quite a bit of data and a number of
> filemarks have been written. Jean-Louis suspected that this was an
> early warning EOM indication, and that a subsequent write() would
> succeed, with Amanda having been duly warned that a physical EOM is
> coming up. But looking at scsi_sa.c, this doesn't seem to be the
> case. It looks like an early warning would result in a successful
> write instead, because resid is set to zero.
>
I did some more thinking and remembering about this- sorry, but it's
really been years since I had to think about tape drives.
The code in question notes that EOM (end of media) is pending so that
the *next* write operation will get a full residual.
So, yes, when you got a full residual back (no data moves), but no
error, that is an EOM indicator for the user app.
More information about the freebsd-scsi
mailing list