A technique for read error failover processing in a mirrored disk system
such as a Redundant Array of Inexpensive Disks (RAID) system, where
individual disk units perform Logical Block Address (LBA) remapping. A
read error causes a disk controller to report an "unrecoverable" read
error to a RAID controller. After receiving this report of an
unrecoverable read error, rather than simply switching over to a mirror,
the RAID controller first checks to see whether the disk that caused the
error can successfully reassign an LBA. In particular, the RAID
controller can retrieve the data that was associated with the failed LBA
from the mirror, and then write that data to the offending disk. The disk
controller for that disk will then perform its standard LBA remapping,
and write the data to a new, good sector. Only if this process does not
succeed is the offending disk then treated by the RAID controller as
having failed sufficiently to require failover to the mirror.