CVSROOT:        /cvs
Module name:    src
Changes by:     [email protected]    2026/01/22 04:53:31

Modified files:
        lib/libfuse    : Makefile Symbols.map fuse_chan.c 
                         fuse_lowlevel.h fuse_ops.c fuse_private.h 
                         shlib_version 
        sys/miscfs/fuse: fuse_device.c fuse_lookup.c fuse_vnops.c 
                         fusefs_node.h 
Added files:
        lib/libfuse    : fuse_lowlevel.c fuse_session.c 

Log message:
Adds basic implementation of the low-level FUSE API.
This is sufficient to compile and run lowntfs-3g.

In this patch the low and high-level APIs are independent. The next
patch will modify the high-level API to make use of the low-level API
so that there is no longer any code duplication.

The libfuse changes are mostly additions and should be self-explanatory.
There are also some kernel changes required, which are:

- A fusefs dir vnode now keeps a reference to its parent vnode so that ".." is
resolves in fusefs_lookup rather than sending the lookup request to the FUSE
file system. This is consistent with Linux.
- Added sanity checks for the attributes returned from FBT_GETATTR. These
belong in the kernel and not in libfuse.
- fusefs_readdir needed some tweaking to handle full buffers.
- Set the vnode type from the attributes returned from FBT_MKDIR and
FBT_MKNOD.

Adds the following files

lib/libfuse/fuse_lowlevel.c
lib/libfuse/fuse_session.c

OK claudio@

Reply via email to