]> code.ossystems Code Review - openembedded-core.git/blob
03b3b82202aaac97143b889f6be45d7b0c5cf653
[openembedded-core.git] /
1 From b52c36a95ed8026b6925fe8595ebcab6921ae62d Mon Sep 17 00:00:00 2001
2 From: Arjan van de Ven <arjan@linux.intel.com>
3 Date: Sun, 20 Jul 2008 13:07:09 -0700
4 Subject: [PATCH] fastboot: make the raid autodetect code wait for all devices to init
5
6 The raid autodetect code really needs to have all devices probed before
7 it can detect raid arrays; not doing so would give rather messy situations
8 where arrays would get detected as degraded while they shouldn't be etc.
9
10 This is in preparation of removing the "wait for everything to init"
11 code that makes everyone pay, not just raid users.
12
13 Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
14 ---
15  init/do_mounts_md.c |    7 +++++++
16  1 files changed, 7 insertions(+), 0 deletions(-)
17
18 diff --git a/init/do_mounts_md.c b/init/do_mounts_md.c
19 index 693d246..c0412a9 100644
20 --- a/init/do_mounts_md.c
21 +++ b/init/do_mounts_md.c
22 @@ -267,9 +267,16 @@ __setup("md=", md_setup);
23  void __init md_run_setup(void)
24  {
25         create_dev("/dev/md0", MKDEV(MD_MAJOR, 0));
26 +
27         if (raid_noautodetect)
28                 printk(KERN_INFO "md: Skipping autodetection of RAID arrays. (raid=noautodetect)\n");
29         else {
30 +               /* 
31 +                * Since we don't want to detect and use half a raid array, we need to
32 +                * wait for the known devices to complete their probing
33 +                */
34 +               while (driver_probe_done() != 0)
35 +                       msleep(100);
36                 int fd = sys_open("/dev/md0", 0, 0);
37                 if (fd >= 0) {
38                         sys_ioctl(fd, RAID_AUTORUN, raid_autopart);
39 -- 
40 1.5.4.3
41