On Mon, 21 May 2012 18:47:58 +0800 "majianpeng" [off-list ref] wrote:
Hi all:
I readed the latest code in function :
raid5_end_read_request():
quoted
quoted
else if (conf->mddev->degraded >= conf->max_degraded)
printk_ratelimited(
KERN_WARNING
"md/raid:%s: read error not correctable "
"(sector %llu on %s).\n",
mdname(conf->mddev),
(unsigned long long)(sh->sector
+ rdev->data_offset),
bdn);
If this occur,then exec md_error().In md_error(), remove this disk.
The raid5 will fail and lost all data.
Why do call rdev_set_badsector() for this situation?
You are probably right - rdev_set_badblocks should probably be called there.
I've added it to my list of issues to look at when I get a chance.
Thanks,
NeilBrown