Linux Headquarters
[ Register ]
[ About us ] [ Home Page ]

[ Kernel ] [ Documentation ] [ Links ] [ Books ]

Kernel v2.6.24 /init/do_mounts_initrd.c

Filename:/init/do_mounts_initrd.c
Lines Added:9
Lines Deleted:3
Also changed in: (Previous) 2.6.24-rc8  2.6.24-rc7  2.6.24-rc6  2.6.24-rc5  2.6.24-rc4-git7  2.6.24-rc4-git6 
(Following)

Location
[  2.6.24
  [  init
     o  do_mounts_initrd.c

Patch

diff --git a/init/do_mounts_initrd.c b/init/do_mounts_initrd.c
index fd4fc12..614241b 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);


Comments: webmaster (at) linuxhq.com.
Advertising: banners (at) linuxhq.com.
Compilation ©1998-2008 Linux Headquarters, Inc.