As I was writing the reply to how to mirror to disk and tape, I realized doing the async I/O is going to be a bit harder to integrate than you might think.
The RAIT code does not call the OS write() function. Instead, it calls the tapeio library tapefd_write() call. The reason is that some of the RAIT segments may not be going to tape at all. So tapefd_write() may end up calling tape_tapefd_write(), or file_tapefd_write(), or null_tapefd_write(), or ... To do this right, we'd probably need to add tapefd_aiowrite() to the tapeio library and the matching XXXX_tapefd_write() calls to the various drivers (and the corresponding *aioread() and *aiowait() routines). That's not a terribly big deal, but it's not the "trivial" case of just adding a few lines in output-rait.c that one might think. John R. Jackson, Technical Software Specialist, [EMAIL PROTECTED]
