st: support ANSI end-of-volume processing
Subsystems (2)
PATCH 1/1 st: support ANSI end-of-volume processing
The ANSI labelled tape standard specifies that the EOD on tape must be preceeded by a trailer label. If during writing your application hits LEOT (Logical End Of Tape), it must be able to write the trailer label. However with the default tape driver (st), you cannot write anything after the LEOT. So the patch clears the error condition so that the application can write the trailer label (there is some space available on tape media between LEOT and PEOT=Physical End Of Tape).
---
Original patch by Fabien Collin. Description above by Jean-Philippe Baud. Patch monkeying by me... Honestly, I don't know a lot about this patch. But, I am told it "works"... If you have questions regarding this, send them to me and I'll get an answer for you.
drivers/scsi/st.c | 1 + 1 files changed, 1 insertion(+)
drivers/scsi/st.c +1 -0
@@ -3440,6 +3440,7 @@ static int st_ioctl(struct inode *inode, } STp->recover_reg =0 ;/* Clear after read */ + STps->eof =ST_NOEOF ; retval =0 ; goto out; }/* End of MTIOCGET */
Signature · 2 lines
John W. Linville [email protected]
Quoted 5 lines · John W. Linville
The ANSI labelled tape standard specifies that the EOD on tape must be preceeded by a trailer label. If during writing your application hits LEOT (Logical End Of Tape), it must be able to write the trailer label. However with the default tape driver (st), you cannot write anything after the LEOT.
This is not true. Quoting from linux/Documentation/scsi/st.txt:
"When the end of medium early warning is encountered, the current write is finished and the number of bytes is returned. The next write returns -1 and errno is set to ENOSPC. To enable writing a trailer, the next write is allowed to proceed and, if successful, the number of bytes is returned. After this, -1 and the number of bytes are alternately returned until the physical end of medium (or some other error) is encountered."
(Yes, this should be added to the man page ;-)
Quoted 4 lines
So the patch clears the error condition so that the application can write the trailer label (there is some space available on tape media between LEOT and PEOT=Physical End Of Tape).
If this new way is what users want and it does not break existing applications, it should be added. Especially if it is the way some other common system behaves. However, when the semantics are changed, the documentation in the kernel sources should also be updated.
Signature · 1 line
Kai