[WIP] feat(fs): fuse support#1773
Draft
fslongjin wants to merge 16 commits intoDragonOS-Community:masterfrom
Draft
[WIP] feat(fs): fuse support#1773fslongjin wants to merge 16 commits intoDragonOS-Community:masterfrom
fslongjin wants to merge 16 commits intoDragonOS-Community:masterfrom
Conversation
- 新增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>
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.
No description provided.