|
@@ -50,6 +50,7 @@ static int init_linuxrc(struct subprocess_info *info, struct cred *new)
|
|
|
|
|
|
static void __init handle_initrd(void)
|
|
|
{
|
|
|
+ struct subprocess_info *info;
|
|
|
static char *argv[] = { "linuxrc", NULL, };
|
|
|
extern char *envp_init[];
|
|
|
int error;
|
|
@@ -70,8 +71,11 @@ static void __init handle_initrd(void)
|
|
|
*/
|
|
|
current->flags |= PF_FREEZER_SKIP;
|
|
|
|
|
|
- call_usermodehelper_fns("/linuxrc", argv, envp_init, UMH_WAIT_PROC,
|
|
|
- init_linuxrc, NULL, NULL);
|
|
|
+ info = call_usermodehelper_setup("/linuxrc", argv, envp_init,
|
|
|
+ GFP_KERNEL, init_linuxrc, NULL, NULL);
|
|
|
+ if (!info)
|
|
|
+ return;
|
|
|
+ call_usermodehelper_exec(info, UMH_WAIT_PROC);
|
|
|
|
|
|
current->flags &= ~PF_FREEZER_SKIP;
|
|
|
|