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