提交 589f800b 编写于 作者: A Arjan van de Ven

fastboot: make the raid autodetect code wait for all devices to init

The raid autodetect code really needs to have all devices probed before
it can detect raid arrays; not doing so would give rather messy situations
where arrays would get detected as degraded while they shouldn't be etc.

This is in preparation of removing the "wait for everything to init"
code that makes everyone pay, not just raid users.
Signed-off-by: NArjan van de Ven <arjan@linux.intel.com>
上级 8bd9890e
...@@ -267,9 +267,16 @@ __setup("md=", md_setup); ...@@ -267,9 +267,16 @@ __setup("md=", md_setup);
void __init md_run_setup(void) void __init md_run_setup(void)
{ {
create_dev("/dev/md0", MKDEV(MD_MAJOR, 0)); create_dev("/dev/md0", MKDEV(MD_MAJOR, 0));
if (raid_noautodetect) if (raid_noautodetect)
printk(KERN_INFO "md: Skipping autodetection of RAID arrays. (raid=noautodetect)\n"); printk(KERN_INFO "md: Skipping autodetection of RAID arrays. (raid=noautodetect)\n");
else { else {
/*
* Since we don't want to detect and use half a raid array, we need to
* wait for the known devices to complete their probing
*/
while (driver_probe_done() != 0)
msleep(100);
int fd = sys_open("/dev/md0", 0, 0); int fd = sys_open("/dev/md0", 0, 0);
if (fd >= 0) { if (fd >= 0) {
sys_ioctl(fd, RAID_AUTORUN, raid_autopart); sys_ioctl(fd, RAID_AUTORUN, raid_autopart);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册