FUSEX File-System Being Developed For Extended/Experimental Features
([Linux Storage] 6 Hours Ago
FUSEX File-System)
- Reference: 0001631403
- News link: https://www.phoronix.com/news/FUSEX-File-System
- Source link:
Miklos Szeredi of Red Hat has been developing the FUSEX file-system as an extended/experimental area for [1]File-System in User-Space "FUSE" development.
One of the leading motivators to the development of FUSEX is working to provide a clean codebase for big feature work being spurred on by pursuing the FUSE_IOMAP API. Szeredi added in the patch message:
"The purpose is to provide a clean base for big features like the FUSE_IOMAP api.
It's also a good way to try new stuff like file handles and compound requests without the risk of breaking something in the large and complex fuse codebase.
Whether these features will be migrated back into the main fuse codebase, or fusex is going to end up as a major version update is still up in the air.
Major differences from regular fuse:
- local filesystem mode only
- only synchronous FUSE_INIT is supported
- only no-open mode
- new requests:
+ FUSE_LOOKUP_ROOT - return nodeid of root
+ FUSE_LOOKUPX - FUSE_LOOKUP without the getattr
+ FUSE_MKOBJX - merged FUSE_MKNOD, MKDIR, SYMLINK and TMPFILE
+ FUSE_SETSTATX - extended version of FUSE_SETATTR
Missing features:
- file handles / export ops
- compound requests
- xattr caching
- fileattr
- fiemap
- ioctl
- copy_file_range
- lazy dir open"
The initial FUSEX file-system code is currently being developed via [2]the "fusex" branch via FUSE.git on kernel.org. There is also [3]this GitHub repository with a test repository implementation for FUSEX.
It will be interesting to see where this FUSEX work leads and what other features it may tack on over the current FUSE support and whether it will ultimately result in merging back into FUSE or not.
[1] https://www.phoronix.com/search/File-System+In+User-Space
[2] https://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse.git/log/?h=fusex
[3] https://github.com/szmi/fuse-utils
One of the leading motivators to the development of FUSEX is working to provide a clean codebase for big feature work being spurred on by pursuing the FUSE_IOMAP API. Szeredi added in the patch message:
"The purpose is to provide a clean base for big features like the FUSE_IOMAP api.
It's also a good way to try new stuff like file handles and compound requests without the risk of breaking something in the large and complex fuse codebase.
Whether these features will be migrated back into the main fuse codebase, or fusex is going to end up as a major version update is still up in the air.
Major differences from regular fuse:
- local filesystem mode only
- only synchronous FUSE_INIT is supported
- only no-open mode
- new requests:
+ FUSE_LOOKUP_ROOT - return nodeid of root
+ FUSE_LOOKUPX - FUSE_LOOKUP without the getattr
+ FUSE_MKOBJX - merged FUSE_MKNOD, MKDIR, SYMLINK and TMPFILE
+ FUSE_SETSTATX - extended version of FUSE_SETATTR
Missing features:
- file handles / export ops
- compound requests
- xattr caching
- fileattr
- fiemap
- ioctl
- copy_file_range
- lazy dir open"
The initial FUSEX file-system code is currently being developed via [2]the "fusex" branch via FUSE.git on kernel.org. There is also [3]this GitHub repository with a test repository implementation for FUSEX.
It will be interesting to see where this FUSEX work leads and what other features it may tack on over the current FUSE support and whether it will ultimately result in merging back into FUSE or not.
[1] https://www.phoronix.com/search/File-System+In+User-Space
[2] https://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse.git/log/?h=fusex
[3] https://github.com/szmi/fuse-utils