Skip to contentSkip to conversation

About raid5 read error handle when raid5 was degraded.

DISCUSSION majianpeng 2 participants 2 messages May 21, 2012 MD RAID

lore
Share & tools
lore

majianpeng

author
#0 lore raw

Hi all:
I readed the latest code in function :

raid5_end_read_request():

Quoted 9 lines
Quoted 9 lines
	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?

Thanks!

--------------
majianpeng
2012-05-21

#1 lore raw
Quoted 14 lines · On Mon, 21 May 2012 18:47:58 +0800 "majianpeng" <[email protected]> wrote:

Hi all:
I readed the latest code in function :

raid5_end_read_request():

Quoted 9 lines
Quoted 9 lines
	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);
Quoted 4 lines

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