1*1687d771SAlexander Ziaee.\" 2*1687d771SAlexander Ziaee.\" SPDX-License-Identifier: BSD-2-Clause 3*1687d771SAlexander Ziaee.\" 4*1687d771SAlexander Ziaee.\" Copyright (c) 2019 The FreeBSD Foundation 5*1687d771SAlexander Ziaee.\" 6*1687d771SAlexander Ziaee.\" This documentation was written by BFF Storage Systems, LLC under 7*1687d771SAlexander Ziaee.\" sponsorship from the FreeBSD Foundation. 8*1687d771SAlexander Ziaee.\" 9*1687d771SAlexander Ziaee.\" Redistribution and use in source and binary forms, with or without 10*1687d771SAlexander Ziaee.\" modification, are permitted provided that the following conditions 11*1687d771SAlexander Ziaee.\" are met: 12*1687d771SAlexander Ziaee.\" 1. Redistributions of source code must retain the above copyright 13*1687d771SAlexander Ziaee.\" notice, this list of conditions and the following disclaimer. 14*1687d771SAlexander Ziaee.\" 2. Redistributions in binary form must reproduce the above copyright 15*1687d771SAlexander Ziaee.\" notice, this list of conditions and the following disclaimer in the 16*1687d771SAlexander Ziaee.\" documentation and/or other materials provided with the distribution. 17*1687d771SAlexander Ziaee.\" 18*1687d771SAlexander Ziaee.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 19*1687d771SAlexander Ziaee.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20*1687d771SAlexander Ziaee.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 21*1687d771SAlexander Ziaee.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 22*1687d771SAlexander Ziaee.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 23*1687d771SAlexander Ziaee.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 24*1687d771SAlexander Ziaee.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 25*1687d771SAlexander Ziaee.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 26*1687d771SAlexander Ziaee.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 27*1687d771SAlexander Ziaee.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 28*1687d771SAlexander Ziaee.\" SUCH DAMAGE. 29*1687d771SAlexander Ziaee.Dd July 31, 2019 30*1687d771SAlexander Ziaee.Dt FUSEFS 4 31*1687d771SAlexander Ziaee.Os 32*1687d771SAlexander Ziaee.Sh NAME 33*1687d771SAlexander Ziaee.Nm fusefs 34*1687d771SAlexander Ziaee.Nd "File system in USErspace" 35*1687d771SAlexander Ziaee.Sh SYNOPSIS 36*1687d771SAlexander ZiaeeTo link into the kernel: 37*1687d771SAlexander Ziaee.Bd -ragged -offset indent 38*1687d771SAlexander Ziaee.Cd "options FUSEFS" 39*1687d771SAlexander Ziaee.Ed 40*1687d771SAlexander Ziaee.Pp 41*1687d771SAlexander ZiaeeTo load as a loadable kernel module: 42*1687d771SAlexander Ziaee.Pp 43*1687d771SAlexander Ziaee.Dl "kldload fusefs" 44*1687d771SAlexander Ziaee.Sh DESCRIPTION 45*1687d771SAlexander ZiaeeThe 46*1687d771SAlexander Ziaee.Nm 47*1687d771SAlexander Ziaeedriver implements a file system that is serviced by a userspace program. 48*1687d771SAlexander Ziaee.Pp 49*1687d771SAlexander ZiaeeThere are many uses for 50*1687d771SAlexander Ziaee.Nm . 51*1687d771SAlexander ZiaeeUserspace daemons can access libraries or programming languages that cannot run 52*1687d771SAlexander Ziaeein kernel-mode, for example. 53*1687d771SAlexander Ziaee.Nm 54*1687d771SAlexander Ziaeeis also useful for developing and debugging file systems, because a crash of 55*1687d771SAlexander Ziaeethe daemon will not take down the entire operating system. 56*1687d771SAlexander ZiaeeFinally, the 57*1687d771SAlexander Ziaee.Nm 58*1687d771SAlexander ZiaeeAPI is portable. 59*1687d771SAlexander ZiaeeMany daemons can run on multiple operating systems with minimal modifications. 60*1687d771SAlexander Ziaee.Sh SYSCTL VARIABLES 61*1687d771SAlexander ZiaeeThe following 62*1687d771SAlexander Ziaee.Xr sysctl 8 63*1687d771SAlexander Ziaeevariables are available: 64*1687d771SAlexander Ziaee.Bl -tag -width indent 65*1687d771SAlexander Ziaee.It Va vfs.fusefs.kernelabi_major 66*1687d771SAlexander ZiaeeMajor version of the FUSE kernel ABI supported by this driver. 67*1687d771SAlexander Ziaee.It Va vfs.fusefs.kernelabi_minor 68*1687d771SAlexander ZiaeeMinor version of the FUSE kernel ABI supported by this driver. 69*1687d771SAlexander Ziaee.It Va vfs.fusefs.data_cache_mode 70*1687d771SAlexander ZiaeeControls how 71*1687d771SAlexander Ziaee.Nm 72*1687d771SAlexander Ziaeewill cache file data for pre-7.23 file systems. 73*1687d771SAlexander ZiaeeA value of 0 will disable caching entirely. 74*1687d771SAlexander ZiaeeEvery data access will be forwarded to the daemon. 75*1687d771SAlexander ZiaeeA value of 1 will select write-through caching. 76*1687d771SAlexander ZiaeeReads will be cached in the VFS layer as usual. 77*1687d771SAlexander ZiaeeWrites will be immediately forwarded to the daemon, and also added to the cache. 78*1687d771SAlexander ZiaeeA value of 2 will select write-back caching. 79*1687d771SAlexander ZiaeeReads and writes will both be cached, and writes will occasionally be flushed 80*1687d771SAlexander Ziaeeto the daemon by the page daemon. 81*1687d771SAlexander ZiaeeWrite-back caching is usually unsafe, especially for FUSE file systems that 82*1687d771SAlexander Ziaeerequire network access. 83*1687d771SAlexander Ziaee.Pp 84*1687d771SAlexander ZiaeeFUSE file systems using protocol 7.23 or later specify their cache behavior 85*1687d771SAlexander Ziaeeon a per-mountpoint basis, ignoring this sysctl. 86*1687d771SAlexander Ziaee.It Va vfs.fusefs.stats.filehandle_count 87*1687d771SAlexander ZiaeeCurrent number of open FUSE file handles. 88*1687d771SAlexander Ziaee.It Va vfs.fusefs.stats.lookup_cache_hits 89*1687d771SAlexander ZiaeeTotal number of lookup cache hits. 90*1687d771SAlexander Ziaee.It Va vfs.fusefs.stats.lookup_cache_misses 91*1687d771SAlexander ZiaeeTotal number of lookup cache misses. 92*1687d771SAlexander Ziaee.It Va vfs.fusefs.stats.node_count 93*1687d771SAlexander ZiaeeCurrent number of allocated FUSE vnodes. 94*1687d771SAlexander Ziaee.It Va vfs.fusefs.stats.ticket_count 95*1687d771SAlexander ZiaeeCurrent number of allocated FUSE tickets, which is roughly equal to the number 96*1687d771SAlexander Ziaeeof FUSE operations currently being processed by daemons. 97*1687d771SAlexander Ziaee.\" Undocumented sysctls 98*1687d771SAlexander Ziaee.\" ==================== 99*1687d771SAlexander Ziaee.\" vfs.fusefs.enforce_dev_perms: I don't understand it well enough. 100*1687d771SAlexander Ziaee.\" vfs.fusefs.iov_credit: I don't understand it well enough 101*1687d771SAlexander Ziaee.\" vfs.fusefs.iov_permanent_bufsize: I don't understand it well enough 102*1687d771SAlexander Ziaee.El 103*1687d771SAlexander Ziaee.Sh SEE ALSO 104*1687d771SAlexander Ziaee.Xr mount_fusefs 8 105*1687d771SAlexander Ziaee.Sh HISTORY 106*1687d771SAlexander ZiaeeThe 107*1687d771SAlexander Ziaee.Nm fuse 108*1687d771SAlexander Ziaeedriver was written as the part of the 109*1687d771SAlexander Ziaee.Fx 110*1687d771SAlexander Ziaeeimplementation of the FUSE userspace file system framework (see 111*1687d771SAlexander Ziaee.Lk https://github.com/libfuse/libfuse ) 112*1687d771SAlexander Ziaeeand first appeared in the 113*1687d771SAlexander Ziaee.Pa sysutils/fusefs-kmod 114*1687d771SAlexander Ziaeeport, supporting 115*1687d771SAlexander Ziaee.Fx 6.0 . 116*1687d771SAlexander ZiaeeIt was added to the base system in 117*1687d771SAlexander Ziaee.Fx 10.0 , 118*1687d771SAlexander Ziaeeand renamed to 119*1687d771SAlexander Ziaee.Nm 120*1687d771SAlexander Ziaeefor 121*1687d771SAlexander Ziaee.Fx 12.1 . 122*1687d771SAlexander Ziaee.Sh AUTHORS 123*1687d771SAlexander Ziaee.An -nosplit 124*1687d771SAlexander ZiaeeThe 125*1687d771SAlexander Ziaee.Nm fuse 126*1687d771SAlexander Ziaeedriver was originally written by 127*1687d771SAlexander Ziaee.An Csaba Henk 128*1687d771SAlexander Ziaeeas a Google Summer of Code project in 2005. 129*1687d771SAlexander ZiaeeIt was further developed by 130*1687d771SAlexander Ziaee.An Ilya Putsikau 131*1687d771SAlexander Ziaeeduring Google Summer of Code 2011, and that version was integrated into the 132*1687d771SAlexander Ziaeebase system by 133*1687d771SAlexander Ziaee.An Attilio Rao Aq Mt attilio@FreeBSD.org . 134*1687d771SAlexander Ziaee.Pp 135*1687d771SAlexander ZiaeeThis manual page was written by 136*1687d771SAlexander Ziaee.An Alan Somers Aq Mt asomers@FreeBSD.org . 137