#
5812c3cc |
| 31-Mar-2019 |
Tomohiro Kusumi <kusumi.tomohiro@gmail.com> |
sys/vfs/fuse: Add initial FUSE support
The basic code design comes from FreeBSD, but the code is written from scratch. It was just easier to write from scratch than trying to port sys/fs/fuse/* in F
sys/vfs/fuse: Add initial FUSE support
The basic code design comes from FreeBSD, but the code is written from scratch. It was just easier to write from scratch than trying to port sys/fs/fuse/* in FreeBSD for various reasons. Note that this is to implement FUSE API/ABI, but not to be compatible with FreeBSD implementation which contains FreeBSD specific sysctls, etc.
The initial version doesn't support FUSE_WRITE by disabling VOP_WRITE() by returning EOPNOTSUPP. It currently works with simple write(2) calls like dd(1) via direct I/O, but not when syncer thread or mmap(2) gets involved under non trivial conditions. It looks to be doable with custom VOP_GETPAGES() and VOP_PUTPAGES(), but if not then it requires some changes to sys/kern/* and sys/vm/* to properly support writes.
Besides above, this initial version supports basic FUSE operations invoked from file related system calls via FUSE VOP's, but not things like FUSE_IOCTL, FUSE_POLL, FUSE_FALLOCATE, etc. Although dmesg says FUSE 7.28, don't expect it to support everything 7.28 (or anywhere close to 7.28) says it has.
FUSE will be dropped from DragonFly releases until it gets stabilized to certain extent including above, at least for write support.
show more ...
|