Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
[sfrench/cifs-2.6.git] / init / do_mounts_initrd.c
index 919a80cb322e6f57dfa2be0a3bb727251bcd7e0e..b222ce9e1c8bd3e4871acf564d187225ba0e574c 100644 (file)
@@ -6,6 +6,7 @@
 #include <linux/romfs_fs.h>
 #include <linux/initrd.h>
 #include <linux/sched.h>
+#include <linux/freezer.h>
 
 #include "do_mounts.h"
 
@@ -54,11 +55,12 @@ static void __init handle_initrd(void)
        sys_mount(".", "/", NULL, MS_MOVE, NULL);
        sys_chroot(".");
 
-       current->flags |= PF_NOFREEZE;
        pid = kernel_thread(do_linuxrc, "/linuxrc", SIGCHLD);
        if (pid > 0) {
-               while (pid != sys_wait4(-1, NULL, 0, NULL))
+               while (pid != sys_wait4(-1, NULL, 0, NULL)) {
+                       try_to_freeze();
                        yield();
+               }
        }
 
        /* move initrd to rootfs' /old */