diff options
Diffstat (limited to 'meta-moblin/packages/linux/linux-moblin-2.6.27-rc6/0031-fastboot-make-the-raid-autodetect-code-wait-for-all.patch')
-rw-r--r-- | meta-moblin/packages/linux/linux-moblin-2.6.27-rc6/0031-fastboot-make-the-raid-autodetect-code-wait-for-all.patch | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/meta-moblin/packages/linux/linux-moblin-2.6.27-rc6/0031-fastboot-make-the-raid-autodetect-code-wait-for-all.patch b/meta-moblin/packages/linux/linux-moblin-2.6.27-rc6/0031-fastboot-make-the-raid-autodetect-code-wait-for-all.patch new file mode 100644 index 0000000000..03b3b82202 --- /dev/null +++ b/meta-moblin/packages/linux/linux-moblin-2.6.27-rc6/0031-fastboot-make-the-raid-autodetect-code-wait-for-all.patch | |||
@@ -0,0 +1,41 @@ | |||
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 | |||