After some digging in the code, I found the problem. An int "magtapeout" 
variable is used in "common/legacy_indexer.c" and in "dump/tape.c" to 
discriminate between tape and other dump output devices.

The variable was declared "extern" in indexer.c, but that declaration was 
commented out and a standalone magtapeout is in place instead. 

Given that tape.c initializes the variable, the indexer.c version never get 
that value, and the GetTapePos function assumes not to be in the tape device 
output case. So ioctl MTGETCPOS is never called, and an lseek is issued instead.

I restored the extern declaration and the QFA function seems ok now.

rob

Reply via email to