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 July 31, 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 | |||||
| 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 | .El | ||||
| .\" 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 | ||||
| .Xr https://github.com/libfuse/libfuse ) | .Lk https://github.com/libfuse/libfuse ) | ||||
| and first appeared in the | and first appeared in the | ||||
| .Pa sysutils/fusefs-kmod | .Pa sysutils/fusefs-kmod | ||||
| port, supporting | port, supporting | ||||
| .Fx 6.0 . | .Fx 6.0 . | ||||
| It was added to the base system in | It was added to the base system in | ||||
| .Fx 10.0 , | .Fx 10.0 , | ||||
| and renamed to | and renamed to | ||||
| .Nm | .Nm | ||||
| Show All 17 Lines | |||||