Skip to content

Commit

Permalink
fastboot: make the raid autodetect code wait for all devices to init
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Arjan van de Ven committed Oct 12, 2008
1 parent 8bd9890 commit 589f800
Showing 1 changed file with 7 additions and 0 deletions.
7 changes: 7 additions & 0 deletions init/do_mounts_md.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down

0 comments on commit 589f800

Please sign in to comment.