Page MenuHomeFreeBSD

fusefs: merge from projects/fuse2
AbandonedPublic

Authored by asomers on Jul 30 2019, 4:41 AM.

Details

Reviewers
cem
ngie
scottl
Group Reviewers
manpages
Summary

fusefs: merge from projects/fuse2

This commit imports the new fusefs driver. It raises the protocol level
from 7.8 to 7.23, fixes many bugs, adds a test suite for the driver, and
adds many new features. New features include:

  • Optional kernel-side permissions checks (-o default_permissions)
  • Implement VOP_MKNOD, VOP_BMAP, and VOP_ADVLOCK
  • Allow interrupting FUSE operations
  • Support named pipes and unix-domain sockets in fusefs file systems
  • Forward UTIME_NOW during utimensat(2) to the daemon
  • kqueue support for /dev/fuse
  • Allow updating mounts with "mount -u"
  • Allow exporting fusefs file systems over NFS
  • Server-initiated invalidation of the name cache or data cache
  • Respect RLIMIT_FSIZE
  • Try to support servers as old as protocol 7.4

Performance enhancements include:

  • Implement FUSE's FOPEN_KEEP_CACHE and FUSE_ASYNC_READ flags
  • Cache file attributes
  • Cache lookup entries, both positive and negative
  • Server-selectable cache modes: writethrough, writeback, or uncached
  • Write clustering
  • Readahead
  • Use counter(9) for statistical reporting

PR: 199934 216391 233783 234581 235773 235774 235775
PR: 236226 236231 236236 236291 236329 236381 236405
PR: 236327 236466 236472 236473 236474 236530 236557
PR: 236560 236844 237052 237181 237588 238565

Test Plan

Unit tests added. Additional testing with fsx and pjdfstest.

Diff Detail

Repository
rS FreeBSD src repository
Lint
Lint OK
Unit
No Unit Test Coverage
Build Status
Buildable 25704
Build 24287: arc lint + arc unit

Event Timeline

asomers created this revision.Jul 30 2019, 4:41 AM
asomers updated this revision to Diff 60308.Jul 30 2019, 8:05 PM

Fix warnings with GCC 8 and rebase

bcr added a subscriber: bcr.Jul 31 2019, 12:58 PM

Some feedback on the man pages. Have you given it to textproc/igor and "mandoc -Tlint" to see if they spot something?

sbin/mount_fusefs/mount_fusefs.8
150

s/may/may be/

152

Is this missing a sentence stop?

162

Another missing setence stop here?

asomers updated this revision to Diff 60325.Jul 31 2019, 4:23 PM

man page fixes suggested by bcr, igor, and mandoc

bcr accepted this revision as: manpages.Jul 31 2019, 5:04 PM

Great, approved for the man page changes.
Thanks for working on fuse2.

asomers updated this revision to Diff 60506.Aug 6 2019, 2:04 PM

Remove superfluous counter_u64_zero

asomers abandoned this revision.Aug 13 2019, 4:27 PM

Submitted as r350665. I don't know why Phabricator didn't close the revision automatically.

Submitted as r350665. I don't know why Phabricator didn't close the revision automatically.

Because rS350665 said "Pull Request" not "Differential Revision".

Submitted as r350665. I don't know why Phabricator didn't close the revision automatically.

Because rS350665 said "Pull Request" not "Differential Revision".

Ahh, crap. It's too bad we can't just use something like "Code Review": for both types of review, and let the scripts figure out which is which based on the URL.