diff options
Diffstat (limited to 'startup/startup.c')
-rw-r--r-- | startup/startup.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/startup/startup.c b/startup/startup.c index 9faeb462..90cdaa85 100644 --- a/startup/startup.c +++ b/startup/startup.c @@ -1462,7 +1462,7 @@ S_startup_essential_task (mach_port_t server, char *name, mach_port_t credential) { - static int authinit, procinit, execinit; + static int authinit, procinit, execinit, fsinit; int fail; /* Always deallocate the extra reference this message carries. */ @@ -1494,11 +1494,21 @@ S_startup_essential_task (mach_port_t server, } else if (!strcmp (name, "proc")) procinit = 1; + else if (!strcmp (name, "ext2fs")) + fsinit = 1; + else + { + mach_port_t otherproc; + proc_child (procserver, task); + proc_task2proc (procserver, task, &otherproc); + proc_mark_important (otherproc); + proc_set_exe (otherproc, name); + } if (verbose) fprintf (stderr, " still waiting for:"); - if (authinit && execinit && procinit) + if (authinit && execinit && procinit && fsinit) { if (verbose) fprintf (stderr, " none!\n"); @@ -1524,6 +1534,8 @@ S_startup_essential_task (mach_port_t server, fprintf (stderr, " exec"); if (! procinit) fprintf (stderr, " proc"); + if (! fsinit) + fprintf (stderr, " fs"); fprintf (stderr, "\n"); } } |