git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
vserver 1.9.5.x5
[linux-2.6.git]
/
init
/
do_mounts.c
diff --git
a/init/do_mounts.c
b/init/do_mounts.c
index
7f87ff7
..
185794f
100644
(file)
--- a/
init/do_mounts.c
+++ b/
init/do_mounts.c
@@
-6,6
+6,7
@@
#include <linux/suspend.h>
#include <linux/root_dev.h>
#include <linux/security.h>
#include <linux/suspend.h>
#include <linux/root_dev.h>
#include <linux/security.h>
+#include <linux/delay.h>
#include <linux/nfs_fs.h>
#include <linux/nfs_fs_sb.h>
#include <linux/nfs_fs.h>
#include <linux/nfs_fs_sb.h>
@@
-142,7
+143,7
@@
dev_t __init name_to_dev_t(char *name)
int part;
#ifdef CONFIG_SYSFS
int part;
#ifdef CONFIG_SYSFS
- sys_mkdir("/sys", 0700);
+
int mkdir_err =
sys_mkdir("/sys", 0700);
if (sys_mount("sysfs", "/sys", "sysfs", 0, NULL) < 0)
goto out;
#endif
if (sys_mount("sysfs", "/sys", "sysfs", 0, NULL) < 0)
goto out;
#endif
@@
-197,7
+198,8
@@
done:
#ifdef CONFIG_SYSFS
sys_umount("/sys", 0);
out:
#ifdef CONFIG_SYSFS
sys_umount("/sys", 0);
out:
- sys_rmdir("/sys");
+ if (!mkdir_err)
+ sys_rmdir("/sys");
#endif
return res;
fail:
#endif
return res;
fail:
@@
-227,8
+229,16
@@
static int __init fs_names_setup(char *str)
return 1;
}
return 1;
}
+static unsigned int __initdata root_delay;
+static int __init root_delay_setup(char *str)
+{
+ root_delay = simple_strtoul(str, NULL, 0);
+ return 1;
+}
+
__setup("rootflags=", root_data_setup);
__setup("rootfstype=", fs_names_setup);
__setup("rootflags=", root_data_setup);
__setup("rootfstype=", fs_names_setup);
+__setup("rootdelay=", root_delay_setup);
static void __init get_fs_names(char *page)
{
static void __init get_fs_names(char *page)
{
@@
-386,6
+396,12
@@
void __init prepare_namespace(void)
mount_devfs();
mount_devfs();
+ if (root_delay) {
+ printk(KERN_INFO "Waiting %dsec before mounting root device...\n",
+ root_delay);
+ ssleep(root_delay);
+ }
+
md_run_setup();
if (saved_root_name[0]) {
md_run_setup();
if (saved_root_name[0]) {