The Solaris ufsdump program seems to detect end-of-tape strictly by seeing a successful write to tape reporting less than the requested amount of data written. For example, it requests to write 64b, and rmt reports that 32b were written successfully (like A32) instead of reporting an error.
Linux rmt uses write() which only reports success or error. There does not appear to be the ability to report a partial write when end of tape is seen in the scsi driver as that causes write to report an error (ENOSPC) on the next write.
So I made this quick and dirty fix that will return 'A0' rather than error when a write fails with ENOSPC. This works great on Solaris ufsdump. I'm not sure if it will cause problems with Linux dump though.
For reference, testing was done with Solaris 10 and RHEL 3. Even though RHEL 3 is very old, even the current dump source has the same code which I fully suspect would cause the same behavior on a newer OS/kernel.