mirror of
https://github.com/opnsense/src.git
synced 2026-07-13 19:20:56 -04:00
vfs_mountroot: Check for root dev before waiting
If GEOM is idle but the root device is not yet present when we enter vfs_mountroot_wait_if_necessary, we call vfs_mountroot_wait to wait for root holds (e.g. CAM or USB initialization). Upon returning from vfs_mountroot_wait, we wait 100 ms at a time until the root device shows up. Since the root device most likely appeared during vfs_mountroot_wait -- waiting for subsystems which may be responsible for the root device is the whole purpose of that function -- it makes sense to check if the device is now present rather than printing a warning and pausing for 100 ms before checking. Reviewed by: trasz Fixes:a3ba3d09c2Make root mount wait mechanism smarter Sponsored by: https://www.patreon.com/cperciva Differential Revision: https://reviews.freebsd.org/D33593 (cherry picked from commit33812d60b9)
This commit is contained in:
parent
72f61780a4
commit
972796d007
1 changed files with 2 additions and 0 deletions
|
|
@ -1041,6 +1041,8 @@ vfs_mountroot_wait_if_neccessary(const char *fs, const char *dev)
|
|||
* to behave exactly as it used to work before.
|
||||
*/
|
||||
vfs_mountroot_wait();
|
||||
if (parse_mount_dev_present(dev))
|
||||
return (0);
|
||||
printf("mountroot: waiting for device %s...\n", dev);
|
||||
delay = hz / 10;
|
||||
timeout = root_mount_timeout * hz;
|
||||
|
|
|
|||
Loading…
Reference in a new issue