Commit Graph

1020 Commits

Author SHA1 Message Date
Chaoqun Zheng 39569a5ae8 Remove allocating blocks operation from `InodeImpl::expand`.
This is done to implement `fallocate`'s lazy file size expansion,
meaning that the expanded trailing blocks are only actually allocated
when they are written.
2026-02-01 16:41:27 +08:00
Chaoqun Zheng 9e99a12124 Support creating sparse blocks by `lseek`. 2026-02-01 16:41:24 +08:00
Chaoqun Zheng a1eba4766f Fix the updating strategy of `InodeDesc::occupied_sectors_count`. 2026-02-01 16:41:18 +08:00
Chaoqun Zheng f14cf37b12 Support creating sparse blocks by `FallocMode::PunchHoleKeepSize`. 2026-02-01 16:35:56 +08:00
Chaoqun Zheng 74e0aa15bc Add a new method: `InodeImpl::alloc_range_blocks`.
Compared to `InodeImpl::expand_blocks`, which is only applicable to
allocating blocks at the end of the file, `InodeImpl::alloc_range_blocks`
can allocate blocks within any range.
2026-02-01 16:34:13 +08:00
Chaoqun Zheng e2ae201381 Implement a mechanism for Ext2 to allocate blocks when writing sparse blocks. 2026-02-01 16:12:26 +08:00
Chaoqun Zheng 3b47b40faf Implement a mechanism for Ext2 to return zero when reading sparse blocks. 2026-02-01 16:12:19 +08:00
Chaoqun Zheng 1fb3c10b8a Fix `DeviceRangeReader` to make it take sparse blocks into account. 2026-02-01 16:12:03 +08:00
Chaoqun Zheng 7f30f8226d Fix some issues about Ext2's `blocks_count`.
- Rename `sector_count` to `occupied_sector_count`.
- Rename `blocks_count` to `size_in_blocks` and fix the related code.
- Fix the issue that `Metadata::blocks` return `blocks_count`, it
should be `occupied_sectors_count` instead.
2026-02-01 16:11:37 +08:00
Qingsong Chen a4f77b12b6 Revise InodeDesc.acl from Option<Bid> to Bid 2026-01-28 18:43:02 -08:00
Qingsong Chen 28fe11e98d Fix ext2 fast symlink inode detection logic 2026-01-28 18:43:02 -08:00
Xinyi Yu 01cf00a4c6 Trim whitespace from input string before parsing in `OomScoreAdhFileOps::write_at` method 2026-01-28 16:19:03 -08:00
Wang Siyuan 08d54ec6ad Add entries other than `[stack]` in `/proc/[pid]/maps` 2026-01-27 23:01:17 -08:00
Wang Siyuan fb8c9e0c27 Revert "`ProgramToLoad` only needs a `elf_inode: Arc<dyn Inode>` instead of a `Path`"
This reverts commit 71632a51b5.
2026-01-27 23:01:17 -08:00
Marsman1996 ea142155fb Fix permission validation in mprotect and mmap 2026-01-27 21:24:35 -08:00
li041 306cc714ae Align `PidFile` semantics with POSIX standards 2026-01-28 11:20:50 +08:00
Ruihan Li 425cc2d1cf Fix some style issues 2026-01-28 11:07:28 +08:00
Ruihan Li b1071b6b92 Remove old gVsior workaround 2026-01-28 11:07:28 +08:00
Ruihan Li 3c959bf0a0 Support `/dev/ttyS0` and `console=ttyS0` 2026-01-27 17:44:41 -08:00
Xinyi Yu 459a634e4a fmt 2026-01-26 15:22:23 -08:00
Xinyi Yu b2ea514556 Impl BLKGETSIZE64 ioctl 2026-01-26 15:22:23 -08:00
Chaoqun Zheng e4ebd821de Fix error setting bid in `InodeImpl::free_indirect_blocks_required_by` 2026-01-26 15:17:07 -08:00
Wang Siyuan b7ae738310 Cleanup: Only maintain children for directory dentries 2026-01-22 11:39:09 +08:00
Marsman1996 5792b49722 Fix error handling in OverlayFsType by propagating lookup errors 2026-01-21 00:30:23 -08:00
Ruihan Li 6a61aa39b0 Handle the listener in `State::set_pass_cred` 2026-01-21 10:11:19 +08:00
Marsman1996 43f570730c Fix new_fd validation to use resource limits in `do_dup3` 2026-01-20 16:02:40 +08:00
Ruihan Li 6520682360 Inherit `SO_PEERCRED` for accepted sockets 2026-01-20 14:51:23 +08:00
Ruihan Li 98529bdbf0 Support `SO_PEERCRED` for UNIX datagrams 2026-01-20 14:51:23 +08:00
Ruihan Li f62ae40188 Allow empty UNIX control messages 2026-01-19 16:18:26 +08:00
Ruihan Li bdc1c79770 Fix overflow behavior and control flags 2026-01-18 18:39:32 -08:00
Ruihan Li e082d4eaa6 Respect `InotifyControls::ONESHOT` 2026-01-18 18:39:32 -08:00
Ruihan Li b5518ccd64 Remove unnecessary atomic loads 2026-01-18 18:39:32 -08:00
Ruihan Li 43b8838d6a Reject new watches on deleted inodes 2026-01-18 18:39:32 -08:00
li041 d23d25c552 Add `pidfd_getfd` syscall 2026-01-18 14:58:18 -08:00
li041 f58fb66cba Refactor `PidFile` to use `Weak<Process>` 2026-01-18 14:58:18 -08:00
Marsman1996 2219e83f8e Fix invalid mapping in mremap fast path 2026-01-16 17:22:18 +08:00
Chen Chengjun 38d455496b Modify all usages of the removed Path APIs 2026-01-15 19:04:51 -08:00
Chen Chengjun 1e5f2e186c Consolidate all path resolution related interfaces under PathResolver 2026-01-15 19:04:51 -08:00
Chen Chengjun 5d5f0bdcde Rename FsResolver to PathResolver and update all usages 2026-01-15 19:04:51 -08:00
Chen Chengjun 505114c17b Move fs_resolver.rs to path module as resolver.rs 2026-01-15 19:04:51 -08:00
Ruihan Li c1aa8a805c Fix checks for `VmarMapOptions::offset` 2026-01-14 10:27:33 +08:00
Ruihan Li fdcf5fd0fe Remove the `AT_NULL` variant 2026-01-14 10:27:33 +08:00
Ruihan Li 48ccafd7f9 Clean up the `init_stack` module 2026-01-14 10:27:33 +08:00
Chen Chengjun bae5de9e8f Move test/* to test/initramfs/* 2026-01-13 11:53:34 -08:00
wyt8 4fa2b55e47 Place the heap after bss segment 2026-01-13 22:01:15 +08:00
wyt8 dac3e94bea Consider the PIE condition when loading the ELF 2026-01-13 22:01:15 +08:00
Marsman1996 d9f4229e6c Fix panic in `add_posix_timer` 2026-01-13 11:06:09 +08:00
Marsman1996 8335ba22d9 Fix stack overflow handling in InitStackWriter by validating positions before writing 2026-01-12 15:57:31 +08:00
Wang Siyuan 1e77c0a938 Cleanup: Use `AtomicStatusFlags::new(flags)` instead of `AtomicU32::new(flags.bits())` 2026-01-11 17:00:23 -08:00
Wang Siyuan 138401b0ab Remove `PathOrInode` 2026-01-11 17:00:23 -08:00