]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
fusefs: WIP fixing writeback cacheing
authorasomers <asomers@FreeBSD.org>
Tue, 11 Jun 2019 16:32:33 +0000 (16:32 +0000)
committerasomers <asomers@FreeBSD.org>
Tue, 11 Jun 2019 16:32:33 +0000 (16:32 +0000)
commitd6a303386fe79187c5e7a22efe2bede77fd043ed
tree3491079a2f49c8b5cf05f198e402e1c5de705694
parent908ce3e65ca4cf4224b34bd98afff8bec5449c87
fusefs: WIP fixing writeback cacheing

The current "writeback" cache mode, selected by the
vfs.fusefs.data_cache_mode sysctl, doesn't do writeback cacheing at all.  It
merely goes through the motions of using buf(9), but then writes every
buffer synchronously.  This commit:

* Enables delayed writes when the sysctl is set to writeback cacheing
* Fixes a cache-coherency problem when extending a file whose last page has
  just been written.
* Removes the "sync" mount option, which had been set unconditionally.
* Adjusts some SDT probes
* Adds several new tests that mimic what fsx does but with more control and
  without a real file system.  As I discover failures with fsx, I add
  regression tests to this file.
* Adds a test that ensures we can append to a file without reading any data
  from it.

This change is still incomplete.  Clustered writing is not yet supported,
and there are frequent "panic: vm_fault_hold: fault on nofault entry" panics
that I need to fix.

Sponsored by: The FreeBSD Foundation
sys/fs/fuse/fuse_io.c
sys/fs/fuse/fuse_vfsops.c
tests/sys/fs/fusefs/Makefile
tests/sys/fs/fusefs/io.cc [new file with mode: 0644]
tests/sys/fs/fusefs/write.cc