aboutsummaryrefslogtreecommitdiffstats
path: root/init/do_mounts_initrd.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-12-06 17:14:16 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-12-06 17:14:16 -0500
commitf194d132e4971111f85c18c96067acffb13cee6d (patch)
treee7510b0f2300e059db3fbe850b68667af28531f0 /init/do_mounts_initrd.c
parent09f3eca2b7e2762e223fdd359f9d0f6303a85f6c (diff)
parent982286d1b8e438f595cdc9304cc4c185c7b90a39 (diff)
Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6
* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: ACPI: suspend: old debugging hacks sneaked back Freezer: Fix JFFS2 garbage collector freezing issue (rev. 2) HWMON: coretemp, suspend fix Freezer: Fix APM emulation breakage Freezer: Fix s2disk resume from initrd
Diffstat (limited to 'init/do_mounts_initrd.c')
-rw-r--r--init/do_mounts_initrd.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/init/do_mounts_initrd.c b/init/do_mounts_initrd.c
index fd4fc12d2624..614241b5200c 100644
--- a/init/do_mounts_initrd.c
+++ b/init/do_mounts_initrd.c
@@ -55,12 +55,18 @@ static void __init handle_initrd(void)
55 sys_mount(".", "/", NULL, MS_MOVE, NULL); 55 sys_mount(".", "/", NULL, MS_MOVE, NULL);
56 sys_chroot("."); 56 sys_chroot(".");
57 57
58 /*
59 * In case that a resume from disk is carried out by linuxrc or one of
60 * its children, we need to tell the freezer not to wait for us.
61 */
62 current->flags |= PF_FREEZER_SKIP;
63
58 pid = kernel_thread(do_linuxrc, "/linuxrc", SIGCHLD); 64 pid = kernel_thread(do_linuxrc, "/linuxrc", SIGCHLD);
59 if (pid > 0) 65 if (pid > 0)
60 while (pid != sys_wait4(-1, NULL, 0, NULL)) { 66 while (pid != sys_wait4(-1, NULL, 0, NULL))
61 try_to_freeze();
62 yield(); 67 yield();
63 } 68
69 current->flags &= ~PF_FREEZER_SKIP;
64 70
65 /* move initrd to rootfs' /old */ 71 /* move initrd to rootfs' /old */
66 sys_fchdir(old_fd); 72 sys_fchdir(old_fd);