Changeset View
Changeset View
Standalone View
Standalone View
share/man/man5/fusefs.5
.\" | .\" | ||||
.\" SPDX-License-Identifier: BSD-2-Clause-FreeBSD | .\" SPDX-License-Identifier: BSD-2-Clause-FreeBSD | ||||
.\" | .\" | ||||
.\" Copyright (c) 2019 The FreeBSD Foundation | .\" Copyright (c) 2019 The FreeBSD Foundation | ||||
.\" | .\" | ||||
.\" This software was developed by BFF Storage Systems, LLC under sponsorship | .\" This documentation was written by BFF Storage Systems, LLC under | ||||
.\" from the FreeBSD Foundation. | .\" sponsorship from the FreeBSD Foundation. | ||||
.\" | .\" | ||||
.\" Redistribution and use in source and binary forms, with or without | .\" Redistribution and use in source and binary forms, with or without | ||||
.\" modification, are permitted provided that the following conditions | .\" modification, are permitted provided that the following conditions | ||||
.\" are met: | .\" are met: | ||||
.\" 1. Redistributions of source code must retain the above copyright | .\" 1. Redistributions of source code must retain the above copyright | ||||
.\" notice, this list of conditions and the following disclaimer. | .\" notice, this list of conditions and the following disclaimer. | ||||
.\" 2. Redistributions in binary form must reproduce the above copyright | .\" 2. Redistributions in binary form must reproduce the above copyright | ||||
.\" notice, this list of conditions and the following disclaimer in the | .\" notice, this list of conditions and the following disclaimer in the | ||||
.\" documentation and/or other materials provided with the distribution. | .\" documentation and/or other materials provided with the distribution. | ||||
.\" | .\" | ||||
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | ||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | ||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | ||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | ||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | ||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | ||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | ||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | ||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | ||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | ||||
.\" SUCH DAMAGE. | .\" SUCH DAMAGE. | ||||
.\" | .\" | ||||
.\" $FreeBSD$ | .\" $FreeBSD$ | ||||
.Dd April 13, 2019 | .Dd June 27, 2019 | ||||
.Dt FUSEFS 5 | .Dt FUSEFS 5 | ||||
.Os | .Os | ||||
.Sh NAME | .Sh NAME | ||||
.Nm fusefs | .Nm fusefs | ||||
.Nd "File system in USErspace" | .Nd "File system in USErspace" | ||||
.Sh SYNOPSIS | .Sh SYNOPSIS | ||||
To link into the kernel: | To link into the kernel: | ||||
.Bd -ragged -offset indent | .Bd -ragged -offset indent | ||||
Show All 15 Lines | |||||
.Nm | .Nm | ||||
is also useful for developing and debugging file systems, because a crash of | is also useful for developing and debugging file systems, because a crash of | ||||
the daemon will not take down the entire operating system. | the daemon will not take down the entire operating system. | ||||
Finally, the | Finally, the | ||||
.Nm | .Nm | ||||
API is portable. | API is portable. | ||||
Many daemons can run on multiple operating systems with minimal modifications. | Many daemons can run on multiple operating systems with minimal modifications. | ||||
.Sh SYSCTL VARIABLES | .Sh SYSCTL VARIABLES | ||||
The following variables are available as both | The following | ||||
.Xr sysctl 8 | .Xr sysctl 8 | ||||
variables and | variables are available: | ||||
.Xr loader 8 | |||||
tunables: | |||||
.Bl -tag -width indent | .Bl -tag -width indent | ||||
.It Va vfs.fusefs.kernelabi_major | .It Va vfs.fusefs.kernelabi_major | ||||
Major version of the FUSE kernel ABI supported by this driver. | Major version of the FUSE kernel ABI supported by this driver. | ||||
.It Va vfs.fusefs.kernelabi_minor | .It Va vfs.fusefs.kernelabi_minor | ||||
Minor version of the FUSE kernel ABI supported by this driver. | Minor version of the FUSE kernel ABI supported by this driver. | ||||
.It Va vfs.fusefs.data_cache_mode | .It Va vfs.fusefs.data_cache_mode | ||||
Controls how | Controls how | ||||
.Nm | .Nm | ||||
will cache file data. | will cache file data for pre-7.23 file systems. | ||||
A value of 0 will disable caching entirely. | A value of 0 will disable caching entirely. | ||||
Every data access will be forwarded to the daemon. | Every data access will be forwarded to the daemon. | ||||
A value of 1 will select write-through caching. | A value of 1 will select write-through caching. | ||||
Reads will be cached in the VFS layer as usual. | Reads will be cached in the VFS layer as usual. | ||||
Writes will be immediately forwarded to the daemon, and also added to the cache. | Writes will be immediately forwarded to the daemon, and also added to the cache. | ||||
A value of 2 will select write-back caching. | A value of 2 will select write-back caching. | ||||
Reads and writes will both be cached, and writes will occasionally be flushed | Reads and writes will both be cached, and writes will occasionally be flushed | ||||
to the daemon by the page daemon. | to the daemon by the page daemon. | ||||
Write-back caching is usually unsafe, especially for FUSE file systems that | Write-back caching is usually unsafe, especially for FUSE file systems that | ||||
require network access. | require network access. | ||||
.It Va vfs.fusefs.lookup_cache_enable | .Pp | ||||
Controls whether | FUSE file systems using protocol 7.23 or later specify their cache behavior | ||||
.Nm | on a per-mountpoint basis, ignoring this sysctl. | ||||
will cache lookup responses from the file system. | .It Va vfs.fusefs.stats.filehandle_count | ||||
FUSE file systems indicate whether lookup responses should be cacheable, but | Current number of open FUSE file handles. | ||||
it may be useful to globally disable caching them if a file system is | .It Va vfs.fusefs.stats.lookup_cache_hits | ||||
misbehaving. | Total number of lookup cache hits. | ||||
.It Va vfs.fusefs.stats.lookup_cache_misses | |||||
Total number of lookup cache misses. | |||||
.It Va vfs.fusefs.stats.node_count | |||||
Current number of allocated FUSE vnodes. | |||||
.It Va vfs.fusefs.stats.ticket_count | |||||
Current number of allocated FUSE tickets, which is roughly equal to the number | |||||
number of FUSE operations currently being processed by daemons. | |||||
.\" Undocumented sysctls | .\" Undocumented sysctls | ||||
.\" ==================== | .\" ==================== | ||||
.\" Counters: I intend to rename to vfs.fusefs.stats.* for clarity | |||||
.\" vfs.fusefs.lookup_cache_{hits, misses} | |||||
.\" vfs.fusefs.filehandle_count | |||||
.\" vfs.fusefs.ticker_count | |||||
.\" vfs.fusefs.node_count | |||||
.\" | |||||
.\" vfs.fusefs.version - useless since the driver moved in-tree | |||||
.\" vfs.fusefs.reclaim_revoked: I don't understand it well-enough | |||||
.\" vfs.fusefs.sync_unmount: dead code | |||||
.\" vfs.fusefs.enforce_dev_perms: I don't understand it well enough. | .\" vfs.fusefs.enforce_dev_perms: I don't understand it well enough. | ||||
.\" vfs.fusefs.init_backgrounded: dead code | |||||
.\" vfs.fusefs.iov_credit: I don't understand it well enough | .\" vfs.fusefs.iov_credit: I don't understand it well enough | ||||
.\" vfs.fusefs.iov_permanent_bufsize: I don't understand it well enough | .\" vfs.fusefs.iov_permanent_bufsize: I don't understand it well enough | ||||
.\" vfs.fusefs.fix_broken_io: I don't understand it well enough | |||||
.\" vfs.fusefs.sync_resize: useless and should be removed | |||||
.\" vfs.fusefs.refresh_size: probably useless? | |||||
.\" vfs.fusefs.mmap_enable: why is this optional? | |||||
.\" vfs.fusefs.data_cache_invalidate: what is this needed for? | |||||
.Sh SEE ALSO | .Sh SEE ALSO | ||||
.Xr mount_fusefs 8 | .Xr mount_fusefs 8 | ||||
.Sh HISTORY | .Sh HISTORY | ||||
The | The | ||||
.Nm fuse | .Nm fuse | ||||
driver was written as the part of the | driver was written as the part of the | ||||
.Fx | .Fx | ||||
implementation of the FUSE userspace file system framework (see | implementation of the FUSE userspace file system framework (see | ||||
Show All 26 Lines |