diff options
Diffstat (limited to 'init')
-rw-r--r-- | init/do_mounts_initrd.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/init/do_mounts_initrd.c b/init/do_mounts_initrd.c index a32ec1ce882b..3e0878e8a80d 100644 --- a/init/do_mounts_initrd.c +++ b/init/do_mounts_initrd.c | |||
@@ -50,6 +50,7 @@ static int init_linuxrc(struct subprocess_info *info, struct cred *new) | |||
50 | 50 | ||
51 | static void __init handle_initrd(void) | 51 | static void __init handle_initrd(void) |
52 | { | 52 | { |
53 | struct subprocess_info *info; | ||
53 | static char *argv[] = { "linuxrc", NULL, }; | 54 | static char *argv[] = { "linuxrc", NULL, }; |
54 | extern char *envp_init[]; | 55 | extern char *envp_init[]; |
55 | int error; | 56 | int error; |
@@ -70,8 +71,11 @@ static void __init handle_initrd(void) | |||
70 | */ | 71 | */ |
71 | current->flags |= PF_FREEZER_SKIP; | 72 | current->flags |= PF_FREEZER_SKIP; |
72 | 73 | ||
73 | call_usermodehelper_fns("/linuxrc", argv, envp_init, UMH_WAIT_PROC, | 74 | info = call_usermodehelper_setup("/linuxrc", argv, envp_init, |
74 | init_linuxrc, NULL, NULL); | 75 | GFP_KERNEL, init_linuxrc, NULL, NULL); |
76 | if (!info) | ||
77 | return; | ||
78 | call_usermodehelper_exec(info, UMH_WAIT_PROC); | ||
75 | 79 | ||
76 | current->flags &= ~PF_FREEZER_SKIP; | 80 | current->flags &= ~PF_FREEZER_SKIP; |
77 | 81 | ||