-
Remove obsolete task working set cache handling
When mounting a volume with the
noubc
option the kernel extension used to set thenoexec
flag for the mount in order to also disable the task working set page cache on disk. However, since the task working set mechanism has been removed in Mac OS X 10.5 thenoexec
flag is no longer needed. -
Ignore vnode name cache hits when creating a file
See osxfuse/kext#4 for details.
-
Always set
O_EXCL
forFUSE_CREATE
requestsThe macOS kernel expects all create calls to return
EEXIST
in case the file already exists, regardless of whetherO_EXCL
was specified or not.Resolves #209
-
Add mount-time option
excl_create
If the mount-time option
excl_create
is specified, theO_EXCL
flag will only be set for "truly" exclusive creates, i.e. create calls for which the initiator explicitly set theO_EXCL
flag. This allows distributed file systems to determine whether or not to acquire a potentially costly lock to prevent remote create races. Nonetheless, the file system still needs to make sure that there are no local create races. -
Fix mount-time option parsing
Fixes the following error when using the
daemon_timeout
mount-time option in combination with a volume name containing the word "union".mount_osxfuse: invalid value for argument daemon_timeout
-
Don't kill the file system on short reads
A FUSE user space server receives file system requests from the FUSE device by allocating some memory and calling
read(2)
. Obviously, the request must fit into that buffer. If it doesn't, we used to kill the file system.Linux FUSE handles short reads differently. Instead of killing the file system it returns
EIO
orE2BIG
(in case ofFUSE_SETXATTR
requests). This change aims to replicate the Linux behavior on macOS.Addresses #293
-
Remove callbacks for interrupted tickets
Make sure to remove a ticket's callback when marking it as answered. Otherwise the ticket will be retained by the callback queue until the volume is unmounted.
-
Minor optimizations and code cleanup
-
Switch to secure website URL