diff options
Diffstat (limited to 'init/initramfs.c')
-rw-r--r-- | init/initramfs.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/init/initramfs.c b/init/initramfs.c index d53138c40639..214c2eaf4373 100644 --- a/init/initramfs.c +++ b/init/initramfs.c @@ -695,4 +695,23 @@ static int __init populate_rootfs(void) } return 0; } + +#if IS_BUILTIN(CONFIG_INITRD_ASYNC) +#include <linux/kthread.h> +#include <linux/async.h> + +static void __init unpack_rootfs_async(void *unused, async_cookie_t cookie) +{ + populate_rootfs(); +} + +static int __init populate_rootfs_async(void) +{ + async_schedule(unpack_rootfs_async, NULL); + return 0; +} + +pure_initcall(populate_rootfs_async); +#else rootfs_initcall(populate_rootfs); +#endif |