generic_tree: Replace Rc/RefCell with flat index-based FileSystem#284
Merged
Johan-Liebert1 merged 3 commits intocomposefs:mainfrom Apr 8, 2026
Merged
generic_tree: Replace Rc/RefCell with flat index-based FileSystem#284Johan-Liebert1 merged 3 commits intocomposefs:mainfrom
Johan-Liebert1 merged 3 commits intocomposefs:mainfrom
Conversation
0e98e6e to
018aec4
Compare
In trying to update to the newer fuse crate, it wants to do multithreaded stuff, and that just breaks with the `Rc` inside `FileSystem`. Similarly - I recently changed our local filesystem scanning to be async, and the `Rc` usage made it less ergonomic. There are 3 cases we care about: - Borrowed, immutable in memory tree (no interior mut needed!) - Owned &mut version - Merging/flattening two trees I think it's just more natural for us to represent the filesystem with a set of inodes, plus the recursive tree pointing to those. Assisted-by: OpenCode (Claude Opus 4) Signed-off-by: Colin Walters <walters@verbum.org>
…tput The fuzzer found a crash where a malformed EROFS image had duplicate directory entry names. When two entries share a name, BTreeMap::insert silently replaces the first, leaving its leaf orphaned (unreferenced). This tripped a debug_assert in erofs_to_filesystem. Ensure we catch this problem cleanly in our EROFS parser. Assisted-by: OpenCode (Claude Opus 4) Signed-off-by: Colin Walters <walters@verbum.org>
018aec4 to
e0bd174
Compare
We need c++ for libfuzzer-sys@0.4.12 Signed-off-by: Pragyan Poudyal <pragyanpoudyal41999@gmail.com>
Johan-Liebert1
approved these changes
Apr 8, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
In trying to update to the newer fuse crate, it wants to do multithreaded stuff, and that just breaks with the
RcinsideFileSystem.Similarly - I recently changed our local filesystem scanning to be async, and the
Rcusage made it less ergonomic.There are 3 cases we care about:
I think it's just more natural for us to represent the filesystem with a set of inodes, plus the recursive tree pointing to those.
Assisted-by: OpenCode (Claude Opus 4)