-
-
Notifications
You must be signed in to change notification settings - Fork 176
[WIP] feat(fs): fuse support #1773
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
fslongjin
wants to merge
11
commits into
DragonOS-Community:master
Choose a base branch
from
fslongjin:feat-fuse
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
+8,363
−123
Conversation
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
- 新增FUSE权限控制机制,支持allow_other和default_permissions挂载选项 - 实现FUSE_DEV_IOC_CLONE设备克隆功能,支持多线程FUSE守护进程 - 添加FUSE_STATFS协议支持,完善文件系统统计信息 - 重构VFS权限检查,支持基于文件系统的权限策略(DAC/Remote) - 新增用户态测试程序,验证权限控制、设备克隆和统计功能 - 清理未使用的日志导入,优化代码结构 Signed-off-by: longjin <longjin@DragonOS.org>
- Introduced `FuseInitNegotiated` structure to manage negotiated parameters during FUSE initialization. - Implemented `on_umount` method to handle unmounting, ensuring in-flight requests are properly failed and queued for destruction. - Added `queue_forget` method to send FORGET messages for node lookups. - Enhanced read request handling to enforce minimum buffer size requirements. - Updated protocol definitions to include new FUSE opcodes and flags. - Removed obsolete `fuse_test_simplefs.h` header file. Signed-off-by: longjin <longjin@DragonOS.org>
- Added a detailed phased implementation plan for DragonOS FUSE, outlining key objectives and milestones from protocol enhancements to ecosystem compatibility. - Introduced a demo application (`fuse3_demo`) based on `libfuse3`, including automatic library download and build processes. - Implemented a test application (`test_fuse3_demo`) for regression testing of the FUSE functionality. - Enhanced FUSE connection management with new opcodes and improved request handling. - Updated protocol definitions to support additional FUSE operations and flags. Signed-off-by: longjin <longjin@DragonOS.org>
- 将FUSE私有数据相关结构体移至独立模块 - 统一使用枚举类型FuseFilePrivateData表示所有FUSE文件类型 - 简化代码结构,提高可维护性 Signed-off-by: longjin <longjin@DragonOS.org>
- Introduced `FuseRequestCred` struct to encapsulate user credentials for FUSE requests. - Refactored request building and handling methods to improve code clarity and reduce redundancy. - Updated `FuseDevPrivateData` to provide a safer way to obtain a reference to `FuseConn`. - Simplified connection reference retrieval in `LockedFuseDevInode` implementations. Signed-off-by: longjin <longjin@DragonOS.org>
- Added non-blocking and blocking methods for popping pending requests in `FuseConn`. - Introduced alignment for directory entry records in `FuseNode` to ensure proper memory alignment. - Implemented methods for parsing directory entries in `FuseNode`, improving the handling of readdir and readdirplus payloads. - Added a new script `run_all_test_fuse.sh` for executing and summarizing test results for FUSE applications. Signed-off-by: longjin <longjin@DragonOS.org>
…sing - Introduced a new `wait_with_recheck` function to streamline the waiting mechanism for requests in `FuseConn`, reducing code duplication. - Refactored the `wait_complete`, `wait_initialized`, and `pop_pending_blocking` methods to utilize the new waiting function. - Added utility methods in `FuseFS` for parsing optional integer and boolean values from strings, improving the clarity of mount option handling. Signed-off-by: longjin <longjin@DragonOS.org>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
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.
No description provided.