[PATCH] md: better handling of readerrors with raid5.
This patch changes the behaviour of raid5 when it gets a read error. Instead of just failing the device, it tried to find out what should have been there, and writes it over the bad block. For some media-errors, this has a reasonable chance of fixing the error. If the write succeeds, and a subsequent read succeeds as well, raid5 decided the address is OK and conitnues. Instead of failing a drive on read-error, we attempt to re-write the block, and then re-read. If that all works, we allow the device to remain in the array. Signed-off-by: Neil Brown <neilb@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
703ebe86a9
commit
4e5314b56a
@ -154,6 +154,8 @@ struct stripe_head {
|
||||
#define R5_Wantwrite 5
|
||||
#define R5_Syncio 6 /* this io need to be accounted as resync io */
|
||||
#define R5_Overlap 7 /* There is a pending overlapping request on this block */
|
||||
#define R5_ReadError 8 /* seen a read error here recently */
|
||||
#define R5_ReWrite 9 /* have tried to over-write the readerror */
|
||||
|
||||
/*
|
||||
* Write method
|
||||
|
Reference in New Issue
Block a user