b83bd5fd14
Improve FreeBSD compatibility
...
First draft. Need to investigate why upstream patches include certain
function that appear to exist in FreeBSD 14.2.
2025-01-15 22:10:02 -06:00
0197984db3
Send invalidate node request outside lock
2025-01-09 23:22:07 -06:00
9056898bbf
Move fuse.c and fuse_lowlevel.c to C++
2025-01-09 19:05:32 -06:00
f0444a1ca9
Add support for 'direct-io-allow-mmap' if supported by kernel
2024-03-21 20:48:42 -05:00
951eb9540d
Ensure lookups of FUSE_ROOT_ID always return generation=0
2024-02-25 17:14:15 -06:00
0ca5d6aad0
Add export-support option as possible workaround for NFS EIO issues
2024-02-19 18:58:50 -06:00
d6a2f06797
Only set allow_other when running as root
2023-10-29 01:44:18 -05:00
6aa6452d3e
Add flushonclose feature
2023-10-28 19:47:23 -05:00
620cab2948
Rework thread pool queue depth impl
2023-10-14 00:58:10 -05:00
766b923116
Fix thread pool destruction where threads don't explicitly exit themselves
2023-09-09 16:48:47 -05:00
6d2c99e487
Remove unneeded debug logging from thread pool
2023-09-04 18:39:43 -05:00
0a94bd7cfc
Rework thread pool, add ability to add/remove threads at runtime
2023-09-03 23:36:03 -05:00
76c8d48dbd
Change threadpool to use concurrentqueue
2023-09-02 00:45:47 -05:00
0ed03a1535
Use relaxed memory order for atomic counters
2023-08-21 15:43:03 -05:00
2377cb05b6
Add thread names for easier debugging
2023-08-14 17:51:41 -05:00
0aafdefc18
Add ability to invalidate gid cache on demand
...
SIGUSR2 or ioctl
2023-08-13 23:30:52 -05:00
6dcf6111af
Add callbacks for newer functions
...
* setupmapping
* removemapping
* syncfs
* tmpfile
2023-08-13 17:38:13 -05:00
eb141c4c4e
Fix logging pin-threads details
2023-07-30 23:13:14 -05:00
51d97bb444
Move fuse thread args out of fuse session object
2023-07-30 22:52:43 -05:00
36a4b7a23a
Merge pull request #1209 from trapexit/o_direct
...
Align msg buffer memory to allow O_DIRECT to work
2023-07-09 19:39:52 -04:00
22833bdfe2
Align msg buffer memory to allow O_DIRECT to work
2023-07-09 15:32:11 -05:00
fa537961c5
Simplify syslog wrapper a bit
2023-07-06 00:13:42 -05:00
5d6c9cc56a
Fix build on older distros due to std::atomic definitions
...
std::atomic_uint64_t missing in some older distros
2023-07-02 23:46:46 -05:00
5ab0fbcaee
Add manual GC triggering + configurable process queue depth
...
Yes, these are unrelated changes but somehow ended up being
prototyped together and I'm too lazy to separate them.
2023-06-26 22:44:23 -05:00
6a14a10e6c
Fix read/write behavior and return value depending on direct_io
...
Also add parallel direct write option for 6.2+ kernels.
2023-06-24 23:06:14 -05:00
6bc3d77992
Fix crash when exiting with open deleted files
2023-04-05 00:32:30 -04:00
373d331f39
Rework fuse read to use same buffers as messages
2023-02-26 23:31:44 -05:00
84592a9f13
Remove splicing features
...
After numerous tests it was found the splice features were at best
the same performance as standard IO and at worse actually slower.
To simplify the code all splice features are removed.
2023-02-26 01:42:58 -05:00
34310170ac
Add ability to pin read and processing threads
2023-02-19 17:52:29 -05:00
9adddfc66d
Add option to lazy umount target mount point
2023-02-02 21:20:23 -05:00
7ed91c1668
Backport bug fixes from libfuse3
2023-01-28 01:17:07 -05:00
92ccfd3c89
Hard code setting of allow_other, ignore when set
2023-01-26 23:37:37 -05:00
3ee93d4c56
Remove 'nonempty' argument
...
This makes it like all other filesystems and brings it into alignment
with libfuse3's behavior.
2023-01-16 23:33:36 -05:00
d11807ef7c
Remove use_ino option and make behavior same as if set
2023-01-16 16:21:44 -05:00
24423b8d2a
Add async message processing
2023-01-16 13:15:53 -05:00
094ad862e7
Fix regression testing for implemented functions
2022-12-11 14:44:19 -05:00
a6ca96fa08
Fix printf for 32bit systems
2022-12-08 22:04:15 -05:00
d14427ad9e
Fix reading of setxattr name
2022-12-08 18:40:08 -05:00
ddf5e53aa4
Misc cleanup
2022-11-27 22:23:38 -06:00
7606430188
Remove libfuse abstraction in prep for adding request data
2022-11-26 23:30:27 -06:00
dba9c4451a
Remove write_buf, simplify FUSE msg dispatching
2022-11-10 22:43:02 -05:00
9d056d609f
Remove unnecessary libfuse abstractions
2022-11-07 23:09:25 -05:00
32e2c9c48e
Tweaks for 32bit systems
2022-11-05 23:28:10 -04:00
14c2ff9ab8
Return ENOENT when dotdot for root node requested
2022-04-12 23:17:39 -04:00
b95ff8ba3a
Lock less often during logging
2022-03-20 22:34:55 -04:00
3f060f4512
Change ENOENT to ESTALE for looking up paths to handle rename race conditions
...
As done in https://github.com/libfuse/libfuse/pull/636
2022-03-20 12:09:22 -04:00
9ca10b2413
Rework node slab garbage collection to limit blocking work threads
...
Also remove debug mode from forcing foreground mode
2022-03-19 13:33:14 -04:00
68b3026264
Remove embedded name in node struct
...
The 32 byte array is below the average size so those 32 bytes are wasted a
large portion of the time.
2021-11-01 21:08:58 -04:00
18dead4d86
Add new debug printing routines
2021-10-27 22:12:10 -04:00
5f737cb7bf
Add option to log node memory usage metrics
2021-10-11 11:57:16 -04:00