[PATCH] md: attempt to auto-correct read errors in raid1
authorNeilBrown <neilb@suse.de>
Fri, 6 Jan 2006 08:20:19 +0000 (00:20 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Fri, 6 Jan 2006 16:34:03 +0000 (08:34 -0800)
commitddaf22abaa831763e75775e6d4c7693504237997
tree4f6ba4cb056f8c7cea82c7d548769b879d0fb405
parentd69762e98456b71167865db9e33e732a28dd36ab
[PATCH] md: attempt to auto-correct read errors in raid1

On a read-error we suspend the array, then synchronously read the block from
other arrays until we find one where we can read it.  Then we try writing the
good data back everywhere and make sure it works.  If any write or subsequent
read fails, only then do we fail the device out of the array.

To be able to suspend the array, we need to also keep track of how many
requests are queued for handling by raid1d.

Signed-off-by: Neil Brown <neilb@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/md/md.c
drivers/md/raid1.c
include/linux/raid/raid1.h