diff --git a/kernel/aster-nix/src/fs/devpts/mod.rs b/kernel/aster-nix/src/fs/devpts/mod.rs index 305a29dab..0eaacd9cb 100644 --- a/kernel/aster-nix/src/fs/devpts/mod.rs +++ b/kernel/aster-nix/src/fs/devpts/mod.rs @@ -41,18 +41,17 @@ const MAX_PTY_NUM: usize = 4096; /// /// Actually, the "/dev/ptmx" is a symlink to the real device at "/dev/pts/ptmx". pub struct DevPts { - root: Arc, sb: SuperBlock, + root: Arc, index_alloc: Mutex, this: Weak, } impl DevPts { pub fn new() -> Arc { - let sb = SuperBlock::new(DEVPTS_MAGIC, BLOCK_SIZE, NAME_MAX); Arc::new_cyclic(|weak_self| Self { - root: RootInode::new(weak_self.clone(), &sb), - sb, + sb: SuperBlock::new(DEVPTS_MAGIC, BLOCK_SIZE, NAME_MAX), + root: RootInode::new(weak_self.clone()), index_alloc: Mutex::new(IdAlloc::with_capacity(MAX_PTY_NUM)), this: weak_self.clone(), }) @@ -112,14 +111,14 @@ struct RootInode { } impl RootInode { - pub fn new(fs: Weak, sb: &SuperBlock) -> Arc { + pub fn new(fs: Weak) -> Arc { Arc::new(Self { - ptmx: Ptmx::new(sb, fs.clone()), + ptmx: Ptmx::new(fs.clone()), slaves: RwLock::new(SlotVec::new()), metadata: RwLock::new(Metadata::new_dir( ROOT_INO, InodeMode::from_bits_truncate(0o755), - sb, + BLOCK_SIZE, )), fs, }) diff --git a/kernel/aster-nix/src/fs/devpts/ptmx.rs b/kernel/aster-nix/src/fs/devpts/ptmx.rs index 959e7ccee..5565261d9 100644 --- a/kernel/aster-nix/src/fs/devpts/ptmx.rs +++ b/kernel/aster-nix/src/fs/devpts/ptmx.rs @@ -24,13 +24,13 @@ pub struct Ptmx { struct Inner(Weak); impl Ptmx { - pub fn new(sb: &SuperBlock, fs: Weak) -> Arc { + pub fn new(fs: Weak) -> Arc { let inner = Inner(fs); Arc::new(Self { metadata: RwLock::new(Metadata::new_device( PTMX_INO, InodeMode::from_bits_truncate(0o666), - sb, + super::BLOCK_SIZE, &inner, )), inner, diff --git a/kernel/aster-nix/src/fs/devpts/slave.rs b/kernel/aster-nix/src/fs/devpts/slave.rs index 19d788005..4d2f5f1ae 100644 --- a/kernel/aster-nix/src/fs/devpts/slave.rs +++ b/kernel/aster-nix/src/fs/devpts/slave.rs @@ -24,7 +24,7 @@ impl PtySlaveInode { metadata: RwLock::new(Metadata::new_device( device.index() as usize + FIRST_SLAVE_INO, InodeMode::from_bits_truncate(0o620), - &fs.upgrade().unwrap().sb(), + super::BLOCK_SIZE, device.as_ref(), )), device,