@@ -2,10 +2,10 @@ use alloc::{sync::Arc, vec::Vec};
2
2
3
3
use rcore_fs:: dev:: block_cache:: BlockCache ;
4
4
use rcore_fs:: vfs:: * ;
5
- use rcore_fs_sfs :: SimpleFileSystem ;
5
+ use rcore_fs_devfs :: { special :: * , DevFS } ;
6
6
use rcore_fs_mountfs:: MountFS ;
7
7
use rcore_fs_ramfs:: RamFS ;
8
- use rcore_fs_devfs :: { DevFS , special :: * } ;
8
+ use rcore_fs_sfs :: SimpleFileSystem ;
9
9
10
10
use crate :: drivers:: BlockDriver ;
11
11
@@ -83,12 +83,16 @@ lazy_static! {
83
83
devfs. add( "zero" , Arc :: new( ZeroINode :: default ( ) ) ) . expect( "failed to mknod /dev/zero" ) ;
84
84
85
85
// 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
+ } ) ;
87
89
dev. mount( devfs) . expect( "failed to mount DevFS" ) ;
88
90
89
91
// mount RamFS at /tmp
90
92
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
+ } ) ;
92
96
tmp. mount( ramfs) . expect( "failed to mount RamFS" ) ;
93
97
94
98
root
0 commit comments