Attached is a plain text patch file. My mailer screws up inline patches. This patch enables failover support in multi-path environments that are configured using the md driver. It does 2 different tests to cover all failure scenarios but only makes one functional change. The tests that done are: 1. A no-op command is sent down at intervals specified by the period. The no-op is _guaranteed_ by firmware to return within a very short time (about 5 seconds). On a very heavily loaded system that may not be adequate so a deadline may also be specified to increase the time in which the command can return. If the command does not return within the deadline time we assume the controller is dead. This covers most failures. 2. The heartbeat register is checked to ensure it is always incrementing. If the value in the register is not greater than the previous check, the controller is dead. This covers the special case of a PCI master abort. What it does: If we determine the controller has failed due to either of the above conditions we fail all outstanding commands and let the md driver handle the failover. This patch was built and tested against the 2.4.21 kernel with the 2.4.22-pre9 pre-patch applied. It is intended for inclusion in the 2.4.22 kernel. Thanks, mikem