- Fixed test errors when running tests as root.
- Made check for util-linux version more robust.
- Added documentation for all fuse capability flags (
FUSE_CAP_*
) andstruct fuse_conn_info
fields. - fuse_loop(), fuse_loop_mt(), fuse_session_loop() and fuse_session_loop_mt() now return more detailed error codes instead of just -1. See the documentation of fuse_session_loop() for details.
- The FUSE main loop is now aborted if the file-system requests capabilities that are not supported by the kernel. In this case, the session loop is exited with a return code of
-EPROTO
. - Most file-system capabilities that were opt-in in libfuse2 are now enabled by default. Filesystem developers are encouraged to review the documentation of the FUSE_CAP_* features to ensure that their filesystem is compatible with the new semantics. As before, a particular capability can still be disabled by unsetting the corresponding bit of
fuse_conn_info.wants
in the init() handler. - Added FUSE_CAP_PARALLEL_DIROPS and FUSE_CAP_POSIX_ACL, FUSE_HANDLE_KILLPRIV feature flags.
- FUSE filesystems are now responsible for unsetting the setuid/setgid flags when a file is written, truncated, or its owner changed. Previously, this was handled by the kernel but subject to race conditions.
- The
allow_other
andallow_root
mount options (accepted byfuse_session_new()
) may now be specified together. In this case,allow_root
takes precedence.