aboutsummaryrefslogtreecommitdiff
path: root/sys/fs/fuse/fuse_vfsops.c
Commit message (Collapse)AuthorAgeFilesLines
* vfs: retire the NULLVP macroMateusz Guzik2025-09-271-2/+2
| | | | | | | | | | | | The kernel was already mostly using plain NULL, just whack it and be doen with the legacy. Churn generated with coccinelle: @@ @@ - NULLVP + NULL
* fusefs: First take on exterrorizingGleb Popov2025-06-171-12/+21
| | | | | | Reviewed by: kib, asomers Approved by: kib, asomers Differential Revision: https://reviews.freebsd.org/D50831
* fusefs: add more checks for buggy FUSE serversAlan Somers2025-06-131-0/+13
| | | | | | | | | | | | | | | | | * If a FUSE file system is NFS-exported (either by a kernel or userspace NFS server), then it must support FUSE_LOOKUP operations for ".". But if the response reports a different nodeid than the request, that's very bad. Fail the operation and warn the operator. * In general, a FUSE file may have a distinct "nodeid" and "inode number". But it the file system is NFS-exported (either by a kernel or userspace NFS server), then those two must match, because the NFS server will do VFS_VGET operations using the inode number. If they don't match, warn the operator. MFC after: 2 weeks Sponsored by: ConnectWise Differential Revision: https://reviews.freebsd.org/D48471
* fusefs: fix a memory leakAlan Somers2024-12-231-1/+1
| | | | | | | | | Fix a leak of a fuse_ticket structure. The leak mostly affected NFS-exported fuse file systems, and was triggered by a failure during FUSE_LOOKUP. MFC after: 2 weeks Sponsored by: ConnectWise
* Stop treating size 0 as unknown size in vnode_create_vobject().Pawel Jakub Dawidek2024-05-231-1/+1
| | | | | | | | | | | | | | | | | | | | | Whenever file is created, the vnode_create_vobject() function will try to determine its size by calling vn_getsize_locked() as size 0 is ambigious: it means either the file size is 0 or the file size is unknown. Introduce special value for the size argument: VNODE_NO_SIZE. Only when it is given, the vnode_create_vobject() will try to obtain file's size on its own. Introduce dedicated vnode_disk_create_vobject() for use by g_vfs_open(), so we don't have to call vn_isdisk() in the common case (for regular files). Handle the case of mediasize==0 in g_vfs_open(). Reviewed by: alc, kib, markj, olce Approved by: oshogbo (mentor), allanjude (mentor) Differential Revision: https://reviews.freebsd.org/D45244
* sys: Automated cleanup of cdefs and other formattingWarner Losh2023-11-271-1/+0
| | | | | | | | | | | | | | | | Apply the following automated changes to try to eliminate no-longer-needed sys/cdefs.h includes as well as now-empty blank lines in a row. Remove /^#if.*\n#endif.*\n#include\s+<sys/cdefs.h>.*\n/ Remove /\n+#include\s+<sys/cdefs.h>.*\n+#if.*\n#endif.*\n+/ Remove /\n+#if.*\n#endif.*\n+/ Remove /^#if.*\n#endif.*\n/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/types.h>/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/param.h>/ Remove /\n+#include\s+<sys/cdefs.h>\n#include\s+<sys/capsicum.h>/ Sponsored by: Netflix
* sys: Remove $FreeBSD$: one-line .c patternWarner Losh2023-08-161-2/+0
| | | | Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
* vfs: use __enum_uint8 for vtype and vstateMateusz Guzik2023-07-051-1/+1
| | | | | | This whacks hackery around only reading v_type once. Bump __FreeBSD_version to 1400093
* Tree-wide replacement of VOP_UNLOCK + vrele combo with vputMateusz Guzik2022-11-071-2/+1
| | | | No functional changes.
* fusefs: use the fsname mount option if setAlan Somers2022-04-291-2/+5
| | | | | | | | | | The daemon can specify fsname=XXX in its mount options. If so, the file system should report f_mntfromname as XXX during statfs. This will show up in the output of commands like mount and df. Submitted by: Ali Abdallah <ali.abdallah@suse.com> MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D35090
* vfs: NDFREE(&nd, NDF_ONLY_PNBUF) -> NDFREE_PNBUF(&nd)Mateusz Guzik2022-03-241-1/+1
|
* Fix a race in fusefs that can corrupt a file's size.Alan Somers2022-01-011-2/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | VOPs like VOP_SETATTR can change a file's size, with the vnode exclusively locked. But VOPs like VOP_LOOKUP look up the file size from the server without the vnode locked. So a race is possible. For example: 1) One thread calls VOP_SETATTR to truncate a file. It locks the vnode and sends FUSE_SETATTR to the server. 2) A second thread calls VOP_LOOKUP and fetches the file's attributes from the server. Then it blocks trying to acquire the vnode lock. 3) FUSE_SETATTR returns and the first thread releases the vnode lock. 4) The second thread acquires the vnode lock and caches the file's attributes, which are now out-of-date. Fix this race by recording a timestamp in the vnode of the last time that its filesize was modified. Check that timestamp during VOP_LOOKUP and VFS_VGET. If it's newer than the time at which FUSE_LOOKUP was issued to the server, ignore the attributes returned by FUSE_LOOKUP. PR: 259071 Reported by: Agata <chogata@moosefs.pro> Reviewed by: pfg MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D33158
* vfs: remove the unused thread argument from NDINIT*Mateusz Guzik2021-11-251-1/+1
| | | | | | See b4a58fbf640409a1 ("vfs: remove cn_thread") Bump __FreeBSD_version to 1400043.
* fusefs: quiet some cache-related warningsAlan Somers2021-10-061-39/+1
| | | | | | | | | | | | | | If the FUSE server does something that would make our cache incoherent, we should print a warning to the user. However, we previously warned in some situations when we shouldn't, such as if the file's size changed on the server _after_ our own attribute cache had expired. This change suppresses the warning in cases like that. It also moves the warning logic to a single place within the code. PR: 256936 Reported by: Agata <chogata@moosefs.pro> Tested by: Agata <chogata@moosefs.pro>, jSML4ThWwBID69YC@protonmail.com MFC after: 2 weeks
* fusefs: improve warnings about buggy FUSE serversAlan Somers2021-06-161-3/+20
| | | | | | | | | | | | | The fusefs driver will print warning messages about FUSE servers that commit protocol violations. Previously it would print those warnings on every violation, but that could spam the console. Now it will print each warning no more than once per lifetime of the mount. There is also now a dtrace probe for each violation. MFC after: 2 weeks Sponsored by: Axcient Reviewed by: emaste, pfg Differential Revision: https://reviews.freebsd.org/D30780
* fusefs: update FUSE protocol to 7.24 and implement FUSE_LSEEKAlan Somers2020-12-311-1/+1
| | | | | | | | | | FUSE_LSEEK reports holes on fuse file systems, and is used for example by bsdtar. MFC after: 2 weeks Relnotes: yes Reviewed by: cem Differential Revision: https://reviews.freebsd.org/D27804
* Make MAXPHYS tunable. Bump MAXPHYS to 1M.Konstantin Belousov2020-11-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace MAXPHYS by runtime variable maxphys. It is initialized from MAXPHYS by default, but can be also adjusted with the tunable kern.maxphys. Make b_pages[] array in struct buf flexible. Size b_pages[] for buffer cache buffers exactly to atop(maxbcachebuf) (currently it is sized to atop(MAXPHYS)), and b_pages[] for pbufs is sized to atop(maxphys) + 1. The +1 for pbufs allow several pbuf consumers, among them vmapbuf(), to use unaligned buffers still sized to maxphys, esp. when such buffers come from userspace (*). Overall, we save significant amount of otherwise wasted memory in b_pages[] for buffer cache buffers, while bumping MAXPHYS to desired high value. Eliminate all direct uses of the MAXPHYS constant in kernel and driver sources, except a place which initialize maxphys. Some random (and arguably weird) uses of MAXPHYS, e.g. in linuxolator, are converted straight. Some drivers, which use MAXPHYS to size embeded structures, get private MAXPHYS-like constant; their convertion is out of scope for this work. Changes to cam/, dev/ahci, dev/ata, dev/mpr, dev/mpt, dev/mvs, dev/siis, where either submitted by, or based on changes by mav. Suggested by: mav (*) Reviewed by: imp, mav, imp, mckusick, scottl (intermediate versions) Tested by: pho Sponsored by: The FreeBSD Foundation Differential revision: https://reviews.freebsd.org/D27225 Notes: svn path=/head/; revision=368124
* Make it possible to mount a fuse filesystem, such as squashfuse,Edward Tomasz Napierala2020-11-091-0/+4
| | | | | | | | | | | | from a Linux binary. Should come handy for AppImages. Reviewed by: asomers MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D26959 Notes: svn path=/head/; revision=367517
* vfs: remove the thread argument from vgetMateusz Guzik2020-08-161-1/+1
| | | | | | | | | | | | | | | | | | It was already asserted to be curthread. Semantic patch: @@ expression arg1, arg2, arg3; @@ - vget(arg1, arg2, arg3) + vget(arg1, arg2) Notes: svn path=/head/; revision=364271
* copystr(9): Move to deprecate (attempt #2)Conrad Meyer2020-05-251-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reapplies logical r360944 and r360946 (reverting r360955), with fixed copystr() stand-in replacement macro. Eventually the goal is to convert consumers and kill the macro, but for a first step it helps if the macro is correct. Prior commit message: Unlike the other copy*() functions, it does not serve to copy from one address space to another or protect against potential faults. It's just an older incarnation of the now-more-common strlcpy(). Add a coccinelle script to tools/ which can be used to mechanically convert existing instances where replacement with strlcpy is trivial. In the two cases which matched, fuse_vfsops.c and union_vfsops.c, the code was further refactored manually to simplify. Replace the declaration of copystr() in systm.h with a small macro wrapper around strlcpy (with correction from brooks@ -- thanks). Remove N redundant MI implementations of copystr. For MIPS, this entailed inlining the assembler copystr into the only consumer, copyinstr, and making the latter a leaf function. Reviewed by: jhb (earlier version) Discussed with: brooks (thanks!) Differential Revision: https://reviews.freebsd.org/D24672 Notes: svn path=/head/; revision=361466
* Disable nullfs cacheing on top of fusefsAlan Somers2020-05-221-0/+5
| | | | | | | | | | | | | | Nullfs cacheing can keep a large number of vnodes active. That results in more active FUSE file handles, causing some FUSE servers to use extra resources. Disable nullfs cacheing for fusefs, just like we already do for NFSv4. PR: 245688 Reported by: MooseFS FreeBSD Team <freebsd@moosefs.pro> MFC after: 2 weeks Notes: svn path=/head/; revision=361399
* Revert r360944 and r360946 until reported issues can be resolvedConrad Meyer2020-05-121-2/+4
| | | | | | | Reported by: cy Notes: svn path=/head/; revision=360955
* copystr(9): Move to deprecate [2/2]Conrad Meyer2020-05-111-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | Unlike the other copy*() functions, it does not serve to copy from one address space to another or protect against potential faults. It's just an older incarnation of the now-more-common strlcpy(). Add a coccinelle script to tools/ which can be used to mechanically convert existing instances where replacement with strlcpy is trivial. In the two cases which matched, fuse_vfsops.c and union_vfsops.c, the code was further refactored manually to simplify. Replace the declaration of copystr() in systm.h with a small macro wrapper around strlcpy. Remove N redundant MI implementations of copystr. For MIPS, this entailed inlining the assembler copystr into the only consumer, copyinstr, and making the latter a leaf function. Reviewed by: jhb Differential Revision: https://reviews.freebsd.org/D24672 Notes: svn path=/head/; revision=360944
* vfs: drop the mostly unused flags argument from VOP_UNLOCKMateusz Guzik2020-01-031-1/+1
| | | | | | | | | | | Filesystems which want to use it in limited capacity can employ the VOP_UNLOCK_FLAGS macro. Reviewed by: kib (previous version) Differential Revision: https://reviews.freebsd.org/D21427 Notes: svn path=/head/; revision=356337
* fusefs: add a intr/nointr mount optionAlan Somers2019-07-181-0/+1
| | | | | | | | | | | | | | | | | | | | | | | FUSE file systems can optionally support interrupting outstanding operations. However, the file system does not identify to the kernel at mount time whether it's capable of doing that. Instead it signals its noncapability by returning ENOSYS to the first FUSE_INTERRUPT operation it receives. That's a problem for reliable signal delivery, because the kernel must choose which thread should get a signal before it knows whether the FUSE server can handle interrupts. The problem is even worse because the FUSE protocol allows a file system to simply ignore all FUSE_INTERRUPT operations. Fix the signal delivery logic by making interruptibility an opt-in mount option. This will require a corresponding change to libfuse, but not to most file systems that link to libfuse. Bump __FreeBSD_version due to the new mount option. Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/fuse2/; revision=350115
* [skip ci] update copyright headers in fusefs filesAlan Somers2019-06-281-0/+5
| | | | | | | Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/fuse2/; revision=349502
* fusefs: delete some unused mount optionsAlan Somers2019-06-261-5/+0
| | | | | | | | | | | | | | | | | | | | | The fusefs kernel module allegedly supported no_attrcache, no_readahed, no_datacache, no_namecache, and no_mmap mount options, but the mount_fusefs binary never did. So there was no way to ever activate these options. Delete them. Some of them have alternatives: no_attrcache: set the attr_valid time to 0 in FUSE_LOOKUP and FUSE_GETATTR responses. no_readahed: set max_readahead to 0 in the FUSE_INIT response. no_datacache: set the vfs.fusefs.data_cache_mode sysctl to 0, or (coming soon) set the attr_valid time to 0 and set FUSE_AUTO_INVAL_DATA in the FUSE_INIT response. no_namecache: set entry_valid time to 0 in FUSE_LOOKUP and FUSE_GETATTR responses. Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/fuse2/; revision=349412
* fusefs: attempt to support servers as old as protocol 7.4Alan Somers2019-06-201-4/+6
| | | | | | | | | | | | | Previously we allowed servers as old as 7.1 to connect (there never was a 7.0). However, we wrongly assumed a few things about protocols older than 7.8. This commit attempts to support servers as old as 7.4 but no older. I added no new tests because I'm not sure there actually _are_ any servers this old in the wild. Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/fuse2/; revision=349247
* fusefs: enable write clusteringAlan Somers2019-06-141-0/+1
| | | | | | | | | | | | | | | | Enable write clustering in fusefs whenever cache mode is set to writeback and the "async" mount option is used. With default values for MAXPHYS, DFLTPHYS, and the fuse max_write mount parameter, that means sequential writes will now be written 128KB at a time instead of 64KB. Also, add a regression test for PR 238565, a panic during unmount that probably affects UFS, ext2, and msdosfs as well as fusefs. PR: 238565 Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/fuse2/; revision=349036
* fusefs: WIP fixing writeback cacheingAlan Somers2019-06-111-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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 Notes: svn path=/projects/fuse2/; revision=348931
* MFHead @348740Alan Somers2019-06-061-2/+2
|\ | | | | | | | | | | | | Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/fuse2/; revision=348744
* | fusefs: don't require FUSE_EXPORT_SUPPORT for async invalidationAlan Somers2019-06-031-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In r348560 I thought that FUSE_EXPORT_SUPPORT was required for cases where the node to be invalidated (or the parent of the entry to be invalidated) wasn't cached. But I realize now that that's not the case. During entry invalidation, if the parent isn't in the vfs hash table, then it must've been reclaimed. And since fuse_vnop_reclaim does a cache_purge, that means the entry to be invalidated has already been removed from the namecache. And during inode invalidation, if the inode to be invalidated isn't in the vfs hash table, then it too must've been reclaimed. In that case it will have no buffer cache to invalidate. Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/fuse2/; revision=348582
* | fusefs: support asynchronous cache invalidationAlan Somers2019-06-031-22/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | Protocol 7.12 adds a way for the server to notify the client that it should invalidate an inode's data cache and/or attributes. This commit implements that mechanism. Unlike Linux's implementation, ours requires that the file system also supports FUSE_EXPORT_SUPPORT (NFS-style lookups). Otherwise the invalidation operation will return EINVAL. Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/fuse2/; revision=348560
* | fusefs: check the vnode cache when looking up files for the NFS serverAlan Somers2019-05-311-6/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | FUSE allows entries to be cached for a limited amount of time. fusefs's vnop_lookup method already implements that using the timeout functionality of cache_lookup/cache_enter_time. However, lookups for the NFS server go through a separate path: vfs_vget. That path can't use the same timeout functionality because cache_lookup/cache_enter_time only work on pathnames, whereas vfs_vget works by inode number. This commit adds entry timeout information to the fuse vnode structure, and checks it during vfs_vget. This allows the NFS server to take advantage of cached entries. It's also the same path that FUSE's asynchronous cache invalidation operations will use. Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/fuse2/; revision=348485
* | fusefs: Make fuse file systems NFS-exportableAlan Somers2019-05-231-3/+105
| | | | | | | | | | | | | | | | | | | | | | | | This commit adds the VOPs needed by userspace NFS servers (tested with net/unfs3). More work is needed to make the in-kernel nfsd work, because of its stateless nature. It doesn't open files prior to doing I/O. Also, the NFS-related VOPs currently ignore the entry cache. Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/fuse2/; revision=348135
* | fusefs: Allow update mountsAlan Somers2019-05-211-17/+72
| | | | | | | | | | | | | | | | | | Allow "mount -u" to change some mount options for fusefs. Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/fuse2/; revision=348062
* | fusefs: unset MNT_LOCALAlan Somers2019-05-201-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The kernel can't tell whether or not a fuse file system is truly local. But what really matters is two things: 1) Can I/O to a file system block indefinitely? 2) Can the file system bypass the O_BENEATH restriction during lookup? For fuse, the answer to both of those question is yes. So as far as the kernel is concerned, it's a non-local file system. Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/fuse2/; revision=348009
* | fusefs: remove the vfs.fusefs.fix_broken_io sysctlAlan Somers2019-05-131-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | This looks like it may have been a workaround for a specific buggy FUSE filesystem. However, there's no information about what that bug may have been, and the workaround is > 6.5 years old, so I consider the sysctl to be unmaintainable. Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/fuse2/; revision=347545
* | fusefs: reap dead sysctlsAlan Somers2019-05-131-6/+0
| | | | | | | | | | | | | | | | | | | | | | | | Remove the "sync_unmount" and "init_backgrounded" sysctls and the associated options from mount_fusefs. Add no backwards-compatibility hidden options to mount_fusefs because these options never had any effect, and are therefore unlikely to be used. Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/fuse2/; revision=347544
* | MFHead @347527Alan Somers2019-05-131-1/+1
|\| | | | | | | | | | | | | Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/fuse2/; revision=347539
| * fusefs: fix a panic on mountAlan Somers2019-04-061-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't page fault if the file descriptor provided with "-o fd" is invalid. This is a merge of r345419 from the projects/fuse2 branch. Reviewed by: ngie Tested by: Marek Zarychta <zarychtam@plan-b.pwste.edu.pl> MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D19836 Notes: svn path=/head/; revision=345986
| * fusefs: convert debug printfs into dtrace probesAlan Somers2019-03-291-28/+24
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fuse(4) was heavily instrumented with debug printf statements that could only be enabled with compile-time flags. They fell into three basic groups: 1. Totally redundant with dtrace FBT probes. These I deleted. 2. Print textual information, usually error messages. These I converted to SDT probes of the form fuse:fuse:FILE:trace. They work just like the old printf statements except they can be enabled at runtime with dtrace. They can be filtered by FILE and/or by priority. 3. More complicated probes that print detailed information. These I converted into ad-hoc SDT probes. Also, de-inline fuse_internal_cache_attrs. It's big enough to be a regular function, and this way it gets a dtrace FBT probe. This commit is a merge of r345304, r344914, r344703, and r344664 from projects/fuse2. Reviewed by: cem MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D19667 Notes: svn path=/head/; revision=345675
* | | fusefs: rename the SDT probes from "fuse" to "fusefs"Alan Somers2019-04-201-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | This matches the new name of the kld. Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/fuse2/; revision=346425
* | | fusefs: delete dead codeAlan Somers2019-03-261-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change also inlines several previously #define'd symbols that didn't really have the meanings indicated by the comments. Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/fuse2/; revision=345521
* | | fusefs: fix a panic on mountAlan Somers2019-03-221-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Don't page fault if the file descriptor provided with "-o fd" is invalid. Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/fuse2/; revision=345419
* | | MFHead @345353Alan Somers2019-03-201-3/+3
|\| | | |/ |/| | | Notes: svn path=/projects/fuse2/; revision=345354
| * Rename fuse(4) to fusefs(4)Alan Somers2019-03-201-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes it more consistent with other filesystems, which all end in "fs", and more consistent with its mount helper, which is already named "mount_fusefs". Reviewed by: cem, rgrimes MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D19649 Notes: svn path=/head/; revision=345350
* | MFHead@r345275Alan Somers2019-03-181-1/+2
|\| | | | | | | Notes: svn path=/projects/fuse2/; revision=345279
| * fuse: switch from DFLTPHYS/MAXBSIZE to maxcachebufConrad Meyer2019-03-071-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | On GENERIC kernels with empty loader.conf, there is no functional change. DFLTPHYS and MAXBSIZE are both 64kB at the moment. This change allows larger bufcache block sizes to be used when either MAXBSIZE (custom kernel) or the loader.conf tunable vfs.maxbcachebuf (GENERIC) is adjusted higher than the default. Suggested by: ken@ Notes: svn path=/head/; revision=344865
* | fuse(4): convert debug printfs into dtrace probesAlan Somers2019-02-281-30/+25
|/ | | | | | | | | | | | | | | | | | fuse(4) was heavily instrumented with debug printf statements that could only be enabled with compile-time flags. They fell into three basic groups: 1) Totally redundant with dtrace FBT probes. These I deleted. 2) Print textual information, usually error messages. These I converted to SDT probes of the form fuse:fuse:FILE:trace. They work just like the old printf statements except they can be enabled at runtime with dtrace. They can be filtered by FILE and/or by priority. 3) More complicated probes that print detailed information. These I converted into ad-hoc SDT probes. Sponsored by: The FreeBSD Foundation Notes: svn path=/projects/fuse2/; revision=344664