Page MenuHomeFreeBSD

fusefs: merge from projects/fuse2
AbandonedPublic

Authored by asomers on Jul 30 2019, 4:41 AM.
Tags
None
Referenced Files
Unknown Object (File)
Wed, Apr 17, 9:24 PM
Unknown Object (File)
Wed, Apr 17, 12:34 PM
Unknown Object (File)
Fri, Mar 29, 3:18 PM
Unknown Object (File)
Mar 19 2024, 7:00 PM
Unknown Object (File)
Mar 19 2024, 6:56 PM
Unknown Object (File)
Mar 19 2024, 6:55 PM
Unknown Object (File)
Jan 30 2024, 12:12 AM
Unknown Object (File)
Dec 25 2023, 8:55 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 - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 25583
Build 24186: arc lint + arc unit

Event Timeline

Fix warnings with GCC 8 and rebase

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?

man page fixes suggested by bcr, igor, and mandoc

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

Remove superfluous counter_u64_zero

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.