-
Add support for file systems with more than
UINT32_MAX
blocksBy default
struct statvfs
is used to query file system statistics. Block counts are stored instruct statvfs
as 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 #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_DELETE
notificationsFile 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.h
for details. -
Fix kernel panic when processing
FUSE_NOTIFY_INVAL_INODE
notificationsAcquiring 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