mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 12:43:29 +02:00
init: factor the root_wait logic in prepare_namespace into a helper
The root_wait logic is a bit obsfucated right now. Expand it and move it into a helper. Signed-off-by: Christoph Hellwig <hch@lst.de> Link: https://lore.kernel.org/r/20230531125535.676098-12-hch@lst.de Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
committed by
Jens Axboe
parent
07d63cbb67
commit
3701c600a3
@@ -606,6 +606,26 @@ void __init mount_root(char *root_device_name)
|
||||
}
|
||||
}
|
||||
|
||||
/* wait for any asynchronous scanning to complete */
|
||||
static void __init wait_for_root(char *root_device_name)
|
||||
{
|
||||
if (ROOT_DEV != 0)
|
||||
return;
|
||||
|
||||
pr_info("Waiting for root device %s...\n", root_device_name);
|
||||
|
||||
for (;;) {
|
||||
if (driver_probe_done()) {
|
||||
ROOT_DEV = name_to_dev_t(root_device_name);
|
||||
if (ROOT_DEV)
|
||||
break;
|
||||
}
|
||||
msleep(5);
|
||||
}
|
||||
async_synchronize_full();
|
||||
|
||||
}
|
||||
|
||||
static dev_t __init parse_root_device(char *root_device_name)
|
||||
{
|
||||
if (!strncmp(root_device_name, "mtd", 3) ||
|
||||
@@ -642,16 +662,8 @@ void __init prepare_namespace(void)
|
||||
if (initrd_load(saved_root_name))
|
||||
goto out;
|
||||
|
||||
/* wait for any asynchronous scanning to complete */
|
||||
if ((ROOT_DEV == 0) && root_wait) {
|
||||
printk(KERN_INFO "Waiting for root device %s...\n",
|
||||
saved_root_name);
|
||||
while (!driver_probe_done() ||
|
||||
(ROOT_DEV = name_to_dev_t(saved_root_name)) == 0)
|
||||
msleep(5);
|
||||
async_synchronize_full();
|
||||
}
|
||||
|
||||
if (root_wait)
|
||||
wait_for_root(saved_root_name);
|
||||
mount_root(saved_root_name);
|
||||
out:
|
||||
devtmpfs_mount();
|
||||
|
Reference in New Issue
Block a user