Skip to content

Commit 287e48a

Browse files
author
Jiajie Chen
committed
Only create /dev /tmp directories when they do not exist
1 parent 78b322e commit 287e48a

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

kernel/src/fs/mod.rs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ use alloc::{sync::Arc, vec::Vec};
22

33
use rcore_fs::dev::block_cache::BlockCache;
44
use rcore_fs::vfs::*;
5-
use rcore_fs_sfs::SimpleFileSystem;
5+
use rcore_fs_devfs::{special::*, DevFS};
66
use rcore_fs_mountfs::MountFS;
77
use rcore_fs_ramfs::RamFS;
8-
use rcore_fs_devfs::{DevFS, special::*};
8+
use rcore_fs_sfs::SimpleFileSystem;
99

1010
use crate::drivers::BlockDriver;
1111

@@ -83,12 +83,16 @@ lazy_static! {
8383
devfs.add("zero", Arc::new(ZeroINode::default())).expect("failed to mknod /dev/zero");
8484

8585
// mount DevFS at /dev
86-
let dev = root.create("dev", FileType::Dir, 0o666).expect("failed to mkdir /dev");
86+
let dev = root.find(true, "dev").unwrap_or_else(|_| {
87+
root.create("dev", FileType::Dir, 0o666).expect("failed to mkdir /dev")
88+
});
8789
dev.mount(devfs).expect("failed to mount DevFS");
8890

8991
// mount RamFS at /tmp
9092
let ramfs = RamFS::new();
91-
let tmp = root.create("tmp", FileType::Dir, 0o666).expect("failed to mkdir /tmp");
93+
let tmp = root.find(true, "tmp").unwrap_or_else(|_| {
94+
root.create("tmp", FileType::Dir, 0o666).expect("failed to mkdir /tmp")
95+
});
9296
tmp.mount(ramfs).expect("failed to mount RamFS");
9397

9498
root

0 commit comments

Comments
 (0)