aboutsummaryrefslogtreecommitdiffstats
path: root/init
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2010-03-04 11:15:33 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2010-03-04 11:15:33 -0500
commit0f2cc4ecd81dc1917a041dc93db0ada28f8356fa (patch)
treef128b50f48f50f0cda6d2b20b53e9ad6e2dfded3 /init
parent1fae4cfb97302289bb5df6a8195eb28385d0b002 (diff)
parent9643f5d94aadd47a5fa9754fb60f2c957de05903 (diff)
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (52 commits) init: Open /dev/console from rootfs mqueue: fix typo "failues" -> "failures" mqueue: only set error codes if they are really necessary mqueue: simplify do_open() error handling mqueue: apply mathematics distributivity on mq_bytes calculation mqueue: remove unneeded info->messages initialization mqueue: fix mq_open() file descriptor leak on user-space processes fix race in d_splice_alias() set S_DEAD on unlink() and non-directory rename() victims vfs: add NOFOLLOW flag to umount(2) get rid of ->mnt_parent in tomoyo/realpath hppfs can use existing proc_mnt, no need for do_kern_mount() in there Mirror MS_KERNMOUNT in ->mnt_flags get rid of useless vfsmount_lock use in put_mnt_ns() Take vfsmount_lock to fs/internal.h get rid of insanity with namespace roots in tomoyo take check for new events in namespace (guts of mounts_poll()) to namespace.c Don't mess with generic_permission() under ->d_lock in hpfs sanitize const/signedness for udf nilfs: sanitize const/signedness in dealing with ->d_name.name ... Fix up fairly trivial (famous last words...) conflicts in drivers/infiniband/core/uverbs_main.c and security/tomoyo/realpath.c
Diffstat (limited to 'init')
-rw-r--r--init/do_mounts_initrd.c4
-rw-r--r--init/main.c11
2 files changed, 6 insertions, 9 deletions
diff --git a/init/do_mounts_initrd.c b/init/do_mounts_initrd.c
index 614241b5200c..2b108538d0d9 100644
--- a/init/do_mounts_initrd.c
+++ b/init/do_mounts_initrd.c
@@ -30,11 +30,7 @@ static int __init do_linuxrc(void * shell)
30 extern char * envp_init[]; 30 extern char * envp_init[];
31 31
32 sys_close(old_fd);sys_close(root_fd); 32 sys_close(old_fd);sys_close(root_fd);
33 sys_close(0);sys_close(1);sys_close(2);
34 sys_setsid(); 33 sys_setsid();
35 (void) sys_open("/dev/console",O_RDWR,0);
36 (void) sys_dup(0);
37 (void) sys_dup(0);
38 return kernel_execve(shell, argv, envp_init); 34 return kernel_execve(shell, argv, envp_init);
39} 35}
40 36
diff --git a/init/main.c b/init/main.c
index 18098153c331..40aaa020cd68 100644
--- a/init/main.c
+++ b/init/main.c
@@ -822,11 +822,6 @@ static noinline int init_post(void)
822 system_state = SYSTEM_RUNNING; 822 system_state = SYSTEM_RUNNING;
823 numa_default_policy(); 823 numa_default_policy();
824 824
825 if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
826 printk(KERN_WARNING "Warning: unable to open an initial console.\n");
827
828 (void) sys_dup(0);
829 (void) sys_dup(0);
830 825
831 current->signal->flags |= SIGNAL_UNKILLABLE; 826 current->signal->flags |= SIGNAL_UNKILLABLE;
832 827
@@ -889,6 +884,12 @@ static int __init kernel_init(void * unused)
889 884
890 do_basic_setup(); 885 do_basic_setup();
891 886
887 /* Open the /dev/console on the rootfs, this should never fail */
888 if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
889 printk(KERN_WARNING "Warning: unable to open an initial console.\n");
890
891 (void) sys_dup(0);
892 (void) sys_dup(0);
892 /* 893 /*
893 * check if there is an early userspace init. If yes, let it do all 894 * check if there is an early userspace init. If yes, let it do all
894 * the work 895 * the work