Announcing FUSE for macOS 3.7.0 Posted on 10 Sep 2017
Release Notes
-
Add support for file systems with more than
UINT32_MAXblocksBy default
struct statvfsis used to query file system statistics. Block counts are stored instruct statvfsas 32 bit integer values. Starting with this releasestruct statfs, which supports 64 bit block counts, can be used instead.- For file systems using the low-level API use
fuse_reply_statfs_x()instead offuse_reply_statfs()to finishstatfs()callbacks. - For file systems using the high-level API implement the
statfs_x()callback instead ofstatfs(). - For file systems using the Objective-C framework no change is required.
For details see osxfuse/osxfuse#396.
- For file systems using the low-level API use
-
Add support for posting file system events on OS X 10.11 and later
Shared file systems need to notify the kernel about external changes. Starting with this release file system events will be posted, so that subscribed user-space applications, like Finder, can reflect remote changes instantly.
- The kernel will post file system events if it receives one of the following notifications:
FUSE_NOTIFY_INVAL_INODE,FUSE_NOTIFY_INVAL_ENTRY, orFUSE_NOTIFY_DELETE - File system events will be posted in case remote changes are detected when loading vnode attributes
- The kernel will post file system events if it receives one of the following notifications:
-
Add support for
FUSE_NOTIFY_DELETEnotificationsFile systems using the low-level API can call
fuse_lowlevel_notify_delete()to inform the kernel that a file or directory has been deleted remotely. The kernel will then invalidate the parent’s attributes and delete the corresponding directory entry. Seefuse/fuse_lowlevel.hfor details. -
Fix kernel panic when processing
FUSE_NOTIFY_INVAL_INODEnotificationsAcquiring a look on a kernel thread and then unlocking it on a different thread can cause a kernel panic on macOS 10.13 when running a debug or development kernel.
-
Minor code cleanup of kernel extension



