From e210e68920481c911f62f03ade0a780f96e48e24 Mon Sep 17 00:00:00 2001 From: LI Qing Date: Fri, 24 May 2024 10:41:33 +0800 Subject: [PATCH] Modify the type of ino to u64 --- kernel/aster-nix/src/fs/devpts/mod.rs | 6 +++--- kernel/aster-nix/src/fs/devpts/slave.rs | 2 +- kernel/aster-nix/src/fs/exfat/inode.rs | 2 +- kernel/aster-nix/src/fs/procfs/template/dir.rs | 7 ++----- kernel/aster-nix/src/fs/procfs/template/file.rs | 2 +- kernel/aster-nix/src/fs/procfs/template/mod.rs | 2 +- kernel/aster-nix/src/fs/procfs/template/sym.rs | 2 +- kernel/aster-nix/src/fs/utils/inode.rs | 12 ++++++------ kernel/aster-nix/src/syscall/stat.rs | 2 +- 9 files changed, 17 insertions(+), 20 deletions(-) diff --git a/kernel/aster-nix/src/fs/devpts/mod.rs b/kernel/aster-nix/src/fs/devpts/mod.rs index 0eaacd9cb..28af7752b 100644 --- a/kernel/aster-nix/src/fs/devpts/mod.rs +++ b/kernel/aster-nix/src/fs/devpts/mod.rs @@ -27,9 +27,9 @@ mod slave; const DEVPTS_MAGIC: u64 = 0x1cd1; const BLOCK_SIZE: usize = 1024; -const ROOT_INO: usize = 1; -const PTMX_INO: usize = 2; -const FIRST_SLAVE_INO: usize = 3; +const ROOT_INO: u64 = 1; +const PTMX_INO: u64 = 2; +const FIRST_SLAVE_INO: u64 = 3; /// The max number of pty pairs. const MAX_PTY_NUM: usize = 4096; diff --git a/kernel/aster-nix/src/fs/devpts/slave.rs b/kernel/aster-nix/src/fs/devpts/slave.rs index 4d2f5f1ae..1fce26a6d 100644 --- a/kernel/aster-nix/src/fs/devpts/slave.rs +++ b/kernel/aster-nix/src/fs/devpts/slave.rs @@ -22,7 +22,7 @@ impl PtySlaveInode { pub fn new(device: Arc, fs: Weak) -> Arc { Arc::new(Self { metadata: RwLock::new(Metadata::new_device( - device.index() as usize + FIRST_SLAVE_INO, + device.index() as u64 + FIRST_SLAVE_INO, InodeMode::from_bits_truncate(0o620), super::BLOCK_SIZE, device.as_ref(), diff --git a/kernel/aster-nix/src/fs/exfat/inode.rs b/kernel/aster-nix/src/fs/exfat/inode.rs index deced4965..457acc00b 100644 --- a/kernel/aster-nix/src/fs/exfat/inode.rs +++ b/kernel/aster-nix/src/fs/exfat/inode.rs @@ -1125,7 +1125,7 @@ impl Inode for ExfatInode { Metadata { dev: 0, - ino: inner.ino as usize, + ino: inner.ino, size: inner.size, blk_size, blocks: (inner.size + blk_size - 1) / blk_size, diff --git a/kernel/aster-nix/src/fs/procfs/template/dir.rs b/kernel/aster-nix/src/fs/procfs/template/dir.rs index 6ddcb378a..0624d5449 100644 --- a/kernel/aster-nix/src/fs/procfs/template/dir.rs +++ b/kernel/aster-nix/src/fs/procfs/template/dir.rs @@ -40,11 +40,8 @@ impl ProcDir { procfs.alloc_id() }); - let metadata = Metadata::new_dir( - ino as _, - InodeMode::from_bits_truncate(0o555), - super::BLOCK_SIZE, - ); + let metadata = + Metadata::new_dir(ino, InodeMode::from_bits_truncate(0o555), super::BLOCK_SIZE); Common::new(metadata, fs, is_volatile) }; Arc::new_cyclic(|weak_self| Self { diff --git a/kernel/aster-nix/src/fs/procfs/template/file.rs b/kernel/aster-nix/src/fs/procfs/template/file.rs index 7b27abd3f..70f2493ff 100644 --- a/kernel/aster-nix/src/fs/procfs/template/file.rs +++ b/kernel/aster-nix/src/fs/procfs/template/file.rs @@ -22,7 +22,7 @@ impl ProcFile { let arc_fs = fs.upgrade().unwrap(); let procfs = arc_fs.downcast_ref::().unwrap(); let metadata = Metadata::new_file( - procfs.alloc_id() as _, + procfs.alloc_id(), InodeMode::from_bits_truncate(0o444), super::BLOCK_SIZE, ); diff --git a/kernel/aster-nix/src/fs/procfs/template/mod.rs b/kernel/aster-nix/src/fs/procfs/template/mod.rs index 065795e4b..e8ad51de2 100644 --- a/kernel/aster-nix/src/fs/procfs/template/mod.rs +++ b/kernel/aster-nix/src/fs/procfs/template/mod.rs @@ -44,7 +44,7 @@ impl Common { } pub fn ino(&self) -> u64 { - self.metadata.read().ino as _ + self.metadata.read().ino } pub fn type_(&self) -> InodeType { diff --git a/kernel/aster-nix/src/fs/procfs/template/sym.rs b/kernel/aster-nix/src/fs/procfs/template/sym.rs index 420334139..7232f342a 100644 --- a/kernel/aster-nix/src/fs/procfs/template/sym.rs +++ b/kernel/aster-nix/src/fs/procfs/template/sym.rs @@ -22,7 +22,7 @@ impl ProcSym { let arc_fs = fs.upgrade().unwrap(); let procfs = arc_fs.downcast_ref::().unwrap(); let metadata = Metadata::new_symlink( - procfs.alloc_id() as _, + procfs.alloc_id(), InodeMode::from_bits_truncate(0o777), super::BLOCK_SIZE, ); diff --git a/kernel/aster-nix/src/fs/utils/inode.rs b/kernel/aster-nix/src/fs/utils/inode.rs index b7dd09f31..d5ffde2d2 100644 --- a/kernel/aster-nix/src/fs/utils/inode.rs +++ b/kernel/aster-nix/src/fs/utils/inode.rs @@ -120,7 +120,7 @@ impl InodeMode { #[derive(Debug, Clone, Copy)] pub struct Metadata { pub dev: u64, - pub ino: usize, + pub ino: u64, pub size: usize, pub blk_size: usize, pub blocks: usize, @@ -136,7 +136,7 @@ pub struct Metadata { } impl Metadata { - pub fn new_dir(ino: usize, mode: InodeMode, blk_size: usize) -> Self { + pub fn new_dir(ino: u64, mode: InodeMode, blk_size: usize) -> Self { Self { dev: 0, ino, @@ -155,7 +155,7 @@ impl Metadata { } } - pub fn new_file(ino: usize, mode: InodeMode, blk_size: usize) -> Self { + pub fn new_file(ino: u64, mode: InodeMode, blk_size: usize) -> Self { Self { dev: 0, ino, @@ -174,7 +174,7 @@ impl Metadata { } } - pub fn new_symlink(ino: usize, mode: InodeMode, blk_size: usize) -> Self { + pub fn new_symlink(ino: u64, mode: InodeMode, blk_size: usize) -> Self { Self { dev: 0, ino, @@ -192,7 +192,7 @@ impl Metadata { rdev: 0, } } - pub fn new_device(ino: usize, mode: InodeMode, blk_size: usize, device: &dyn Device) -> Self { + pub fn new_device(ino: u64, mode: InodeMode, blk_size: usize, device: &dyn Device) -> Self { Self { dev: 0, ino, @@ -211,7 +211,7 @@ impl Metadata { } } - pub fn new_socket(ino: usize, mode: InodeMode, blk_size: usize) -> Metadata { + pub fn new_socket(ino: u64, mode: InodeMode, blk_size: usize) -> Metadata { Self { dev: 0, ino, diff --git a/kernel/aster-nix/src/syscall/stat.rs b/kernel/aster-nix/src/syscall/stat.rs index 698834ee4..f27c8bec9 100644 --- a/kernel/aster-nix/src/syscall/stat.rs +++ b/kernel/aster-nix/src/syscall/stat.rs @@ -90,7 +90,7 @@ pub struct Stat { /// ID of device containing file st_dev: u64, /// Inode number - st_ino: usize, + st_ino: u64, /// Number of hard links st_nlink: usize, /// File type and mode