#
53f73aaf |
| 18-Dec-2024 |
Alan Somers <asomers@FreeBSD.org> |
fusefs: delete a comment in the tests
Even on a riscv embedded system, the fusefs tests run fast enough that 10 seconds is a reasonable timeout.
[skip ci]
MFC after: 2 weeks Sponsored by: ConnectW
fusefs: delete a comment in the tests
Even on a riscv embedded system, the fusefs tests run fast enough that 10 seconds is a reasonable timeout.
[skip ci]
MFC after: 2 weeks Sponsored by: ConnectWise
show more ...
|
Revision tags: release/14.2.0, release/13.4.0 |
|
#
e9ac4169 |
| 15-Jul-2024 |
Warner Losh <imp@FreeBSD.org> |
Remove residual blank line at start of Makefile
This is a residual of the $FreeBSD$ removal.
MFC After: 3 days (though I'll just run the command on the branches) Sponsored by: Netflix
|
Revision tags: release/14.1.0, release/13.3.0 |
|
#
dc0b4094 |
| 21-Dec-2023 |
Dimitry Andric <dim@FreeBSD.org> |
Silence VLA extension warnings in fusefs tests
Building tests/sys/fs/fusefs with clang 18 results the following warning:
tests/sys/fs/fusefs/cache.cc:145:14: error: variable length arrays in C++
Silence VLA extension warnings in fusefs tests
Building tests/sys/fs/fusefs with clang 18 results the following warning:
tests/sys/fs/fusefs/cache.cc:145:14: error: variable length arrays in C++ are a Clang extension [-Werror,-Wvla-cxx-extension] 145 | uint8_t buf[bufsize]; | ^~~~~~~
Because we do not particularly care that this is a clang extension, suppress the warning.
MFC after: 3 days
show more ...
|
Revision tags: release/14.0.0 |
|
#
d0b2dbfa |
| 16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
Remove $FreeBSD$: one-line sh pattern
Remove /^\s*#[#!]?\s*\$FreeBSD\$.*$\n/
|
#
062de1c5 |
| 20-Jun-2023 |
John Baldwin <jhb@FreeBSD.org> |
tests/fusefs: Suppress false warning from GCC.
GCC complains that DNAME in the inval_entry_below_root test is not used, but EXPECT_LOOKUP() does pass DNAME to strcmp in an internal lambda function.
tests/fusefs: Suppress false warning from GCC.
GCC complains that DNAME in the inval_entry_below_root test is not used, but EXPECT_LOOKUP() does pass DNAME to strcmp in an internal lambda function.
Reviewed by: asomers Differential Revision: https://reviews.freebsd.org/D40661
show more ...
|
Revision tags: release/13.2.0 |
|
#
5f51c9c3 |
| 22-Feb-2023 |
Alan Somers <asomers@FreeBSD.org> |
fusefs: add some more test cases for bad fuse servers
MFC after: 1 week Sponsored by: Axcient Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D38719
|
Revision tags: release/12.4.0, release/13.1.0 |
|
#
398c88c7 |
| 01-Jan-2022 |
Alan Somers <asomers@FreeBSD.org> |
fusefs: implement VOP_ALLOCATE
Now posix_fallocate will be correctly forwarded to fuse file system servers, for those that support it.
MFC after: 2 weeks Reviewed by: pfg Differential Revision: htt
fusefs: implement VOP_ALLOCATE
Now posix_fallocate will be correctly forwarded to fuse file system servers, for those that support it.
MFC after: 2 weeks Reviewed by: pfg Differential Revision: https://reviews.freebsd.org/D33389
show more ...
|
Revision tags: release/12.3.0 |
|
#
13d593a5 |
| 29-Nov-2021 |
Alan Somers <asomers@FreeBSD.org> |
Fix a race in fusefs that can corrupt a file's size.
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 serve
Fix a race in fusefs that can corrupt a file's size.
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
show more ...
|
#
5a3a8cb0 |
| 27-Aug-2021 |
Dimitry Andric <dim@FreeBSD.org> |
Silence more gtest warnings, now in fusefs tests
Follow-up d396c67f26b0 by also silencing warnings about deprecated implicit copy constructors in the fusefs tests, which use googletest.
Fixes: d39
Silence more gtest warnings, now in fusefs tests
Follow-up d396c67f26b0 by also silencing warnings about deprecated implicit copy constructors in the fusefs tests, which use googletest.
Fixes: d396c67f26b0 MFC after: 3 days
show more ...
|
Revision tags: release/13.0.0 |
|
#
71befc35 |
| 12-Feb-2021 |
Alan Somers <asomers@FreeBSD.org> |
fusefs: set d_off during VOP_READDIR
This allows d_off to be used with lseek to position the file so that getdirentries(2) will return the next entry. It is not used by readdir(3).
PR: 253411 Rep
fusefs: set d_off during VOP_READDIR
This allows d_off to be used with lseek to position the file so that getdirentries(2) will return the next entry. It is not used by readdir(3).
PR: 253411 Reported by: John Millikin <jmillikin@gmail.com> Reviewed by: cem MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D28605
show more ...
|
#
92bbfe1f |
| 29-Dec-2020 |
Alan Somers <asomers@gmail.com> |
fusefs: implement FUSE_COPY_FILE_RANGE.
This updates the FUSE protocol to 7.28, though most of the new features are optional and are not yet implemented.
MFC after: 2 weeks Relnotes: yes Reviewed b
fusefs: implement FUSE_COPY_FILE_RANGE.
This updates the FUSE protocol to 7.28, though most of the new features are optional and are not yet implemented.
MFC after: 2 weeks Relnotes: yes Reviewed by: cem Differential Revision: https://reviews.freebsd.org/D27818
show more ...
|
#
37df9d3b |
| 29-Dec-2020 |
Alan Somers <asomers@FreeBSD.org> |
fusefs: update FUSE protocol to 7.24 and implement FUSE_LSEEK
FUSE_LSEEK reports holes on fuse file systems, and is used for example by bsdtar.
MFC after: 2 weeks Relnotes: yes Reviewed by: cem Dif
fusefs: update FUSE protocol to 7.24 and implement FUSE_LSEEK
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
show more ...
|
Revision tags: release/12.2.0 |
|
#
7cc42f6d |
| 01-Oct-2020 |
Kyle Evans <kevans@FreeBSD.org> |
Do a sweep and remove most WARNS=6 settings
Repeating the default WARNS here makes it slightly more difficult to experiment with default WARNS changes, e.g. if we did something absolutely bananas an
Do a sweep and remove most WARNS=6 settings
Repeating the default WARNS here makes it slightly more difficult to experiment with default WARNS changes, e.g. if we did something absolutely bananas and introduced a WARNS=7 and wanted to try lifting the default to that.
Drop most of them; there is one in the blake2 kernel module, but I suspect it should be dropped -- the default WARNS in the rest of the build doesn't currently apply to kernel modules, and I haven't put too much thought into whether it makes sense to make it so.
show more ...
|
Revision tags: release/11.4.0 |
|
#
b0ecfb42 |
| 11-Mar-2020 |
Alan Somers <asomers@FreeBSD.org> |
fusefs: avoid cache corruption with buggy fuse servers
The FUSE protocol allows the client (kernel) to cache a file's size, if the server (userspace daemon) allows it. A well-behaved daemon obviousl
fusefs: avoid cache corruption with buggy fuse servers
The FUSE protocol allows the client (kernel) to cache a file's size, if the server (userspace daemon) allows it. A well-behaved daemon obviously should not change a file's size while a client has it cached. But a buggy daemon might. If the kernel ever detects that that has happened, then it should invalidate the entire cache for that file. Previously, we would not only cache stale data, but in the case of a file extension while we had the size cached, we accidentally extended the cache with zeros.
PR: 244178 Reported by: Ben RUBSON <ben.rubson@gmx.com> Reviewed by: cem MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D24012
show more ...
|
Revision tags: release/12.1.0 |
|
#
4a045a66 |
| 10-Aug-2019 |
Brooks Davis <brooks@FreeBSD.org> |
Don't add -Wno-class-memaccess with older gcc.
This is a gcc 8.0+ warning which needed to be silenced on for the riscv build. amd64-xtoolchain-gcc still uses gcc 6.4.0 and does not understand this
Don't add -Wno-class-memaccess with older gcc.
This is a gcc 8.0+ warning which needed to be silenced on for the riscv build. amd64-xtoolchain-gcc still uses gcc 6.4.0 and does not understand this flag.
Reviewed by: asomers Feedback from: imp Differential Revision: https://reviews.freebsd.org/D21195
show more ...
|
#
0b4275ac |
| 07-Aug-2019 |
Alan Somers <asomers@FreeBSD.org> |
fusefs: merge from projects/fuse2
This commit imports the new fusefs driver. It raises the protocol level from 7.8 to 7.23, fixes many bugs, adds a test suite for the driver, and adds many new featu
fusefs: merge from projects/fuse2
This commit imports the new fusefs driver. It raises the protocol level from 7.8 to 7.23, fixes many bugs, adds a test suite for the driver, and adds many new features. New features include:
* Optional kernel-side permissions checks (-o default_permissions) * Implement VOP_MKNOD, VOP_BMAP, and VOP_ADVLOCK * Allow interrupting FUSE operations * Support named pipes and unix-domain sockets in fusefs file systems * Forward UTIME_NOW during utimensat(2) to the daemon * kqueue support for /dev/fuse * Allow updating mounts with "mount -u" * Allow exporting fusefs file systems over NFS * Server-initiated invalidation of the name cache or data cache * Respect RLIMIT_FSIZE * Try to support servers as old as protocol 7.4
Performance enhancements include:
* Implement FUSE's FOPEN_KEEP_CACHE and FUSE_ASYNC_READ flags * Cache file attributes * Cache lookup entries, both positive and negative * Server-selectable cache modes: writethrough, writeback, or uncached * Write clustering * Readahead * Use counter(9) for statistical reporting
PR: 199934 216391 233783 234581 235773 235774 235775 PR: 236226 236231 236236 236291 236329 236381 236405 PR: 236327 236466 236472 236473 236474 236530 236557 PR: 236560 236844 237052 237181 237588 238565 Reviewed by: bcr (man pages) Reviewed by: cem, ngie, rpokala, glebius, kib, bde, emaste (post-commit review on project branch) MFC after: 3 weeks Relnotes: yes Sponsored by: The FreeBSD Foundation Pull Request: https://reviews.freebsd.org/D21110
show more ...
|
#
9f13765e |
| 30-Jul-2019 |
Alan Somers <asomers@FreeBSD.org> |
fusefs: fix building tests with GCC 8
GCC 8 objected to including C++-only flags in CWARNFLAGS
Sponsored by: The FreeBSD Foundation
|
#
5a0b9a27 |
| 20-Jul-2019 |
Alan Somers <asomers@FreeBSD.org> |
fusefs: fix warnings in the tests reported by GCC
Sponsored by: The FreeBSD Foundation
|
Revision tags: release/11.3.0 |
|
#
a1c9f4ad |
| 20-Jun-2019 |
Alan Somers <asomers@FreeBSD.org> |
fusefs: implement VOP_BMAP
If the fuse daemon supports FUSE_BMAP, then use that for the block mapping. Otherwise, use the same technique used by vop_stdbmap. Report large values for runp and runb i
fusefs: implement VOP_BMAP
If the fuse daemon supports FUSE_BMAP, then use that for the block mapping. Otherwise, use the same technique used by vop_stdbmap. Report large values for runp and runb in order to maximize read clustering and minimize upcalls, even if we don't know the true layout.
The major result of this change is that sequential reads to FUSE files will now usually happen 128KB at a time instead of 64KB.
Sponsored by: The FreeBSD Foundation
show more ...
|
#
a87e0831 |
| 11-Jun-2019 |
Alan Somers <asomers@FreeBSD.org> |
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
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
show more ...
|
#
2d6bf515 |
| 06-Jun-2019 |
Alan Somers <asomers@FreeBSD.org> |
fusefs: add some explicit tests for FUSE_FORGET
Sponsored by: The FreeBSD Foundation
|
#
c2d70d6e |
| 01-Jun-2019 |
Alan Somers <asomers@FreeBSD.org> |
fusefs: support name cache invalidation
Protocol 7.12 adds a way for the server to notify the client that it should invalidate an entry from its name cache. This commit implements that mechanism.
fusefs: support name cache invalidation
Protocol 7.12 adds a way for the server to notify the client that it should invalidate an entry from its name cache. This commit implements that mechanism.
Sponsored by: The FreeBSD Foundation
show more ...
|
#
e5b50fe7 |
| 23-May-2019 |
Alan Somers <asomers@FreeBSD.org> |
fusefs: Make fuse file systems NFS-exportable
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
fusefs: Make fuse file systems NFS-exportable
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
show more ...
|
#
a6fac00c |
| 21-May-2019 |
Alan Somers <asomers@FreeBSD.org> |
fusefs: Allow update mounts
Allow "mount -u" to change some mount options for fusefs.
Sponsored by: The FreeBSD Foundation
|
#
3429092c |
| 12-May-2019 |
Alan Somers <asomers@FreeBSD.org> |
fusefs: support kqueue for /dev/fuse
/dev/fuse was already pollable with poll and select. Add support for kqueue, too. And add tests for polling with poll, select, and kqueue.
Sponsored by: The F
fusefs: support kqueue for /dev/fuse
/dev/fuse was already pollable with poll and select. Add support for kqueue, too. And add tests for polling with poll, select, and kqueue.
Sponsored by: The FreeBSD Foundation
show more ...
|