diff options
author | Rafael J. Wysocki <rjw@sisk.pl> | 2007-05-06 17:50:46 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-07 15:12:59 -0400 |
commit | 726162b5dad154a90dad51c0185b891312de5757 (patch) | |
tree | b2313cdd19951206229889569781549777c0bfb0 /init/do_mounts_initrd.c | |
parent | 0709db6072c2e799eba1aa61bd19e0d7f38aa2cd (diff) |
freezer: remove PF_NOFREEZE from handle_initrd
Make handle_initrd() call try_to_freeze() in a suitable place instead of setting
PF_NOFREEZE for the current task.
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Nigel Cunningham <nigel@nigel.suspend2.net>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'init/do_mounts_initrd.c')
-rw-r--r-- | init/do_mounts_initrd.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/init/do_mounts_initrd.c b/init/do_mounts_initrd.c index 2cfd7cb36e79..b222ce9e1c8b 100644 --- a/init/do_mounts_initrd.c +++ b/init/do_mounts_initrd.c | |||
@@ -55,11 +55,12 @@ 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 | current->flags |= PF_NOFREEZE; | ||
59 | pid = kernel_thread(do_linuxrc, "/linuxrc", SIGCHLD); | 58 | pid = kernel_thread(do_linuxrc, "/linuxrc", SIGCHLD); |
60 | if (pid > 0) { | 59 | if (pid > 0) { |
61 | while (pid != sys_wait4(-1, NULL, 0, NULL)) | 60 | while (pid != sys_wait4(-1, NULL, 0, NULL)) { |
61 | try_to_freeze(); | ||
62 | yield(); | 62 | yield(); |
63 | } | ||
63 | } | 64 | } |
64 | 65 | ||
65 | /* move initrd to rootfs' /old */ | 66 | /* move initrd to rootfs' /old */ |