Any possibility of getting SILI support working to support short reads?
When dealing with tapes from different sources, we quite often end up with tapes that have been written with varying block sizes. As it stands, mhvtl returns a read failure rather a short read. For example,
dd if=/dev/nst0 bs=4096 count=1
With no short read support, we get a generic read error. However, with SILI support enabled:
mt -f /dev/nst0 stopt scsi2log sili
We get the requested 4K of data.
From Kai's documentation on mt-st:
sili Set the SILI bit when reading in variable
block mode. This may speed up reading blocks
shorter than the read byte count. Set this option
only if you know that the drive supports SILI and
the HBA reliably returns transfer residual byte
counts. Requires kernel version >= 2.6.26.
This works very well with live drives, but the failure with mhvtl makes testing variable block tapes difficult when emulating multiple tape sources.