42 lines
1.4 KiB
Diff
42 lines
1.4 KiB
Diff
From b52c36a95ed8026b6925fe8595ebcab6921ae62d Mon Sep 17 00:00:00 2001
|
|
From: Arjan van de Ven <arjan@linux.intel.com>
|
|
Date: Sun, 20 Jul 2008 13:07:09 -0700
|
|
Subject: [PATCH] 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: Arjan van de Ven <arjan@linux.intel.com>
|
|
---
|
|
init/do_mounts_md.c | 7 +++++++
|
|
1 files changed, 7 insertions(+), 0 deletions(-)
|
|
|
|
diff --git a/init/do_mounts_md.c b/init/do_mounts_md.c
|
|
index 693d246..c0412a9 100644
|
|
--- a/init/do_mounts_md.c
|
|
+++ b/init/do_mounts_md.c
|
|
@@ -267,9 +267,16 @@ __setup("md=", md_setup);
|
|
void __init md_run_setup(void)
|
|
{
|
|
create_dev("/dev/md0", MKDEV(MD_MAJOR, 0));
|
|
+
|
|
if (raid_noautodetect)
|
|
printk(KERN_INFO "md: Skipping autodetection of RAID arrays. (raid=noautodetect)\n");
|
|
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);
|
|
if (fd >= 0) {
|
|
sys_ioctl(fd, RAID_AUTORUN, raid_autopart);
|
|
--
|
|
1.5.4.3
|
|
|