diff options
Diffstat (limited to 'init')
-rw-r--r-- | 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 693d24694a6c..c0412a9dc003 100644 --- a/init/do_mounts_md.c +++ b/init/do_mounts_md.c | |||
@@ -267,9 +267,16 @@ __setup("md=", md_setup); | |||
267 | void __init md_run_setup(void) | 267 | void __init md_run_setup(void) |
268 | { | 268 | { |
269 | create_dev("/dev/md0", MKDEV(MD_MAJOR, 0)); | 269 | create_dev("/dev/md0", MKDEV(MD_MAJOR, 0)); |
270 | |||
270 | if (raid_noautodetect) | 271 | if (raid_noautodetect) |
271 | printk(KERN_INFO "md: Skipping autodetection of RAID arrays. (raid=noautodetect)\n"); | 272 | printk(KERN_INFO "md: Skipping autodetection of RAID arrays. (raid=noautodetect)\n"); |
272 | else { | 273 | else { |
274 | /* | ||
275 | * Since we don't want to detect and use half a raid array, we need to | ||
276 | * wait for the known devices to complete their probing | ||
277 | */ | ||
278 | while (driver_probe_done() != 0) | ||
279 | msleep(100); | ||
273 | int fd = sys_open("/dev/md0", 0, 0); | 280 | int fd = sys_open("/dev/md0", 0, 0); |
274 | if (fd >= 0) { | 281 | if (fd >= 0) { |
275 | sys_ioctl(fd, RAID_AUTORUN, raid_autopart); | 282 | sys_ioctl(fd, RAID_AUTORUN, raid_autopart); |