static void early_mounts(void)
{
- mount("proc", "/proc", "proc", 0, 0);
- mount("sysfs", "/sys", "sysfs", 0, 0);
+ mount("proc", "/proc", "proc", MS_NOATIME, 0);
+ mount("sysfs", "/sys", "sysfs", MS_NOATIME, 0);
- mount("tmpfs", "/tmp", "tmpfs", MS_NOSUID | MS_NODEV, "size=512k,mode=1777");
+ mount("tmpfs", "/tmp", "tmpfs", MS_NOSUID | MS_NODEV | MS_NOATIME, NULL);
mkdir("/tmp/run", 0777);
mkdir("/tmp/lock", 0777);
mkdir("/tmp/state", 0777);
symlink("/tmp", "/var");
- mount("tmpfs", "/dev", "tmpfs", 0, "mode=0755,size=512K");
+ mount("tmpfs", "/dev", "tmpfs", MS_NOATIME, "mode=0755,size=512K");
mkdir("/dev/shm", 0755);
mkdir("/dev/pts", 0755);
- mount("devpts", "/dev/pts", "devpts", 0, 0);
+ mount("devpts", "/dev/pts", "devpts", MS_NOATIME, "mode=600");
}
static void early_dev(void)
struct stat s;
int dd;
- if (stat(dev, &s))
- mkdev("*console", 0600);
+ if (stat(dev, &s)) {
+ ERROR("Failed to stat %s\n", dev);
+ return;
+ }
dd = open(dev, O_RDWR);
- close(STDIN_FILENO);
- close(STDOUT_FILENO);
- close(STDERR_FILENO);
-
if (dd < 0) {
ERROR("Failed to open %s\n", dev);
return;
dup2(dd, STDIN_FILENO);
dup2(dd, STDOUT_FILENO);
dup2(dd, STDERR_FILENO);
- close(dd);
+
+ if (dd != STDIN_FILENO &&
+ dd != STDOUT_FILENO &&
+ dd != STDERR_FILENO)
+ close(dd);
}
static void early_env(void)