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 @@ +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 + |