|
Revision tags: release/12.4.0, release/13.1.0 |
|
| #
eccfee83 |
| 01-Jan-2022 |
Alan Somers <[email protected]> |
fusefs: implement VOP_ALLOCATE
Now posix_fallocate will be correctly forwarded to fuse file system servers, for those that support it.
Reviewed by: pfg Differential Revision: https://reviews.freebs
fusefs: implement VOP_ALLOCATE
Now posix_fallocate will be correctly forwarded to fuse file system servers, for those that support it.
Reviewed by: pfg Differential Revision: https://reviews.freebsd.org/D33389
(cherry picked from commit 398c88c7582a195cbfeb689ceff1400cc717673f)
show more ...
|
|
Revision tags: release/12.3.0 |
|
| #
36ba3605 |
| 29-Nov-2021 |
Alan Somers <[email protected]> |
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 <[email protected]> Reviewed by: pfg Differential Revision: https://reviews.freebsd.org/D33158
(cherry picked from commit 13d593a5b060cf7be40acfa2ca9dc9e0e2339a31)
show more ...
|
| #
e9dbd59b |
| 27-Aug-2021 |
Dimitry Andric <[email protected]> |
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
(cherry picked from commit 5a3a8cb01ab8ef4aa16a1950b1ef804070ce1ac6)
show more ...
|
|
Revision tags: release/13.0.0 |
|
| #
dc559c84 |
| 12-Feb-2021 |
Alan Somers <[email protected]> |
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 <[email protected]> Reviewed by: cem Differential Revision: https://reviews.freebsd.org/D28605
(cherry picked from commit 71befc35061b3c9d8cc07e34c5dce622c848fcdb)
show more ...
|
| #
92bbfe1f |
| 29-Dec-2020 |
Alan Somers <[email protected]> |
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 <[email protected]> |
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 <[email protected]> |
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 <[email protected]> |
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 <[email protected]> Reviewed by: cem MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D24012
show more ...
|
|
Revision tags: release/12.1.0 |
|
| #
4a045a66 |
| 09-Aug-2019 |
Brooks Davis <[email protected]> |
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 ...
|
| #
9f13765e |
| 30-Jul-2019 |
Alan Somers <[email protected]> |
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 <[email protected]> |
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 <[email protected]> |
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 <[email protected]> |
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 <[email protected]> |
fusefs: add some explicit tests for FUSE_FORGET
Sponsored by: The FreeBSD Foundation
|
| #
c2d70d6e |
| 01-Jun-2019 |
Alan Somers <[email protected]> |
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 <[email protected]> |
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 <[email protected]> |
fusefs: Allow update mounts
Allow "mount -u" to change some mount options for fusefs.
Sponsored by: The FreeBSD Foundation
|
| #
3429092c |
| 11-May-2019 |
Alan Somers <[email protected]> |
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 ...
|
| #
e5ff3a7e |
| 04-May-2019 |
Alan Somers <[email protected]> |
fusefs: only root may set the sticky bit on a non-directory
PR: 216391 Reported by: pjdfstest Sponsored by: The FreeBSD Foundation
|
| #
f9b0e30b |
| 29-Apr-2019 |
Alan Somers <[email protected]> |
fusefs: FIFO support
Sponsored by: The FreeBSD Foundation
|
| #
99878c75 |
| 01-Apr-2019 |
Alan Somers <[email protected]> |
Respond to ngie's comments in D19752
Better Makefile syntax.
Note that this commit is to the project branch, but the review concerns the merge to head.
Sponsored by: The FreeBSD Foundation
|
| #
61c225f9 |
| 29-Mar-2019 |
Alan Somers <[email protected]> |
fusefs: fix test build after r345645
It's no longer necessary to add GTESTS_CXXFLAGS to CXXFLAGS
Sponsored by: The FreeBSD Foundation
|
| #
91ff3a0d |
| 21-Mar-2019 |
Alan Somers <[email protected]> |
fusefs: add a test case for the allow_other mount option
Also, fix one of the default_permissions test cases. I forgot the expectation for FUSE_ACCESS, because that doesn't work right now.
Sponsor
fusefs: add a test case for the allow_other mount option
Also, fix one of the default_permissions test cases. I forgot the expectation for FUSE_ACCESS, because that doesn't work right now.
Sponsored by: The FreeBSD Foundation
show more ...
|
| #
9821f1d3 |
| 21-Mar-2019 |
Alan Somers <[email protected]> |
fusefs: adapt the tests to the fuse => fusefs rename
Sponsored by: The FreeBSD Foundation
|