-
Update libosxfuse from version 2.9.5 to 2.9.6
-
Update MacFUSE compatibility layer from version 2.7.4 to 2.7.5
-
Use weak linking to make OSXFUSE.framework backward compatible
When a symbol in a framework is defined as weakly linked, the symbol does not have to be present at runtime. This allows taking advantage of new features while still supporting older versions of the framework.
To build a file system that still supports FUSE for OS X 2.x define the following preprocessor macro before importing the framework header.
#define GM_VERSION_MIN_REQUIRED GM_OSXFUSE_2
Make sure to check for the existence of weakly linked symbols before using them, otherwise the file system might crash.
-
Bump number of osxfuse devices to 64. This addresses issue #277.
-
Lower minimum file system block size to 128 bytes. This addresses issue Finder showing wrong sizes through statfs.
-
Increase maximum file system block size from
MAXPHYS
(128 KiB) toMAXBSIZE
(1 MiB) -
Clean up
vnop_exchange
operation in kernel extensionUse
vnode_update_identity()
instead offuse_kludge_exchange()
for updating the vnodes' names and parents. This rendersfuse_kludge_exchange()
obsolete. -
Implement new style mount process
When mounting a FUSE volume on Linux,
fusermount
opens the FUSE device and passes the file descriptor back tolibfuse
.However, on OS X
libosxfuse
used to be responsible for locating a free FUSE device, opening it, and then passing the file descriptor tomount_osxfuse
. For this to worklibosxfuse
needs to be aware of low level implementation details like the number of registered FUSE devices.In order to decouple
libosxfuse
from the FUSE kernel extension the mount process has been revised to match FUSE on Linux.mount_osxfuse
will locate a free FUSE device, open it, and then pass the file descriptor back tolibosxfuse
. -
Update
mount_osxfuse
environment variables- Remove unused
MOUNT_FUSEFS_SAFE
- Rename
MOUNT_FUSEFS_CALL_BY_LIB
MOUNT_OSXFUSE_CALL_BY_LIB
- Remove unused
-
Refactor kernel extension loader
-
Remove unused
FUSEDEVIOCSETIMPLEMENTEDBITS
ioctl