aboutsummaryrefslogtreecommitdiff
path: root/init
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-12-06 14:14:16 -0800
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-12-06 14:14:16 -0800
commitf194d132e4971111f85c18c96067acffb13cee6d (patch)
treee7510b0f2300e059db3fbe850b68667af28531f0 /init
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')
-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 fd4fc12d262..614241b5200 100644
--- a/init/do_mounts_initrd.c
+++ b/init/do_mounts_initrd.c
@@ -55,12 +55,18 @@ static void __init handle_initrd(void)
sys_mount(".", "/", NULL, MS_MOVE, NULL);
sys_chroot(".");
+ /*
+ * In case that a resume from disk is carried out by linuxrc or one of
+ * its children, we need to tell the freezer not to wait for us.
+ */
+ current->flags |= PF_FREEZER_SKIP;
+
pid = kernel_thread(do_linuxrc, "/linuxrc", SIGCHLD);
if (pid > 0)
- while (pid != sys_wait4(-1, NULL, 0, NULL)) {
- try_to_freeze();
+ while (pid != sys_wait4(-1, NULL, 0, NULL))
yield();
- }
+
+ current->flags &= ~PF_FREEZER_SKIP;
/* move initrd to rootfs' /old */
sys_fchdir(old_fd);