@bfleischer bfleischer released this May 22, 2018 · 33 commits to master since this release

Assets 6
  • Add support for DEBUG and DEVELOPMENT kernels. Previous versions of the FUSE kernel extension did only support RELEASE kernels.

  • Add support for O_APPEND flag of open(2) when running in direct_io mode

  • Add high-level support for invalidating files

    To invalidate caches for a specific path and posting a file system event notifying subscribed processes, e.g. Finder, of remote file changes, call one of the following functions:

    • fuse_invalidate_path() for high-level FUSE file systems
    • -[GMUserFileSystem invalidateItemAtPath:error:] for Objective-C or Swift file systems
  • Fix file handle bug in exchangedata(2). Relying on vnode_update_identity() resulted in open file handles pointing to the wrong file after calling exchangedata(2).

  • Fix "vnode reclaim in progress" kernel panic.

  • Do not post unnecessary file system events because they might trigger file system operations. Especially expensive readdir(3) calls should be avoided.

    • Do not post automatic file system events if we already know that we will not be able to detect remote changes reliably. Invalidating a vnode's cached attributes essentially means that we expect the attributes to have changed in user space.
    • Fix readdir(3) loop when using the high level volicon module. Addresses #434.
  • Purge vnode from namecache when a FUSE_NOTIFY_DELETE notification is received by the kernel extension and the file has been deleted and re-created in the meantime.

  • Always use standard system font for about text in FUSE preference pane.