trapexit
9b046d9a34
Rework credential handling to support chroot & idmap ( #1595 )
...
Run in an elevated credential mode (root) and let the kernel manage
entitlements. Will result in slightly different behavior but should
not be noticed by most.
2025-12-05 21:03:48 -06:00
Emanuel Haupt
d8918458bf
libfuse: fix narrowing conversion of nsec fields on i386 ( #1593 )
...
On 32 bit platforms tv_nsec is a signed long while the FUSE setattr
arguments provide nanoseconds as uint32_t. C++17 treats uint32_t -> long
in a brace initializer as a narrowing conversion and rejects it on ILP32
targets. This surfaced when building on FreeBSD i386 with clang 19 where
the compiler refused the list initialization of struct timespec.
Add explicit static_cast<long>() for the nsec fields to make the
conversion intentional and portable. This avoids build failures on i386
while leaving 64 bit builds unchanged.
2025-11-29 10:45:20 -06:00
trapexit
41b65ae9e8
Misc cleanup for FreeBSD and clang ( #1560 )
2025-11-02 10:49:22 -06:00
trapexit
2412ae7316
Further tweaks to config parsing and error reporting ( #1559 )
...
* Further tweaks to config parsing and error reporting
* Fix static builds
2025-11-01 15:20:30 -05:00
trapexit
37f10888a9
Add more debugging options to makefiles and cleanup ( #1556 )
2025-10-29 22:42:42 -05:00
trapexit
cfaad60275
Misc updates to arg parsing ( #1554 )
...
Ignore "defaults" and add a number of more modern VFS mount switches
2025-10-26 21:05:05 -05:00
trapexit
741128cb23
Fix lack of include for fmt ( #1550 )
2025-10-24 21:00:15 -05:00
trapexit
727c522fb8
Rework config, centralize fuse config ( #1547 )
2025-10-24 08:20:29 -05:00
trapexit
0371f03def
Rework how fuse request context is handled ( #1543 )
2025-10-12 23:21:36 -05:00
trapexit
d18c273293
Allow setting of passthrough max-stack-depth ( #1542 )
2025-10-07 21:52:13 -05:00
trapexit
0f24bb29ac
Make allow-idmap optional (default: false) ( #1541 )
...
This is just to correct default behavior for now. More investigation
is necessary to properly support idmapping.
2025-10-06 14:46:58 -05:00
trapexit
46f85c0f6d
Misc fixes, mostly for FreeBSD ( #1536 )
2025-09-28 23:17:51 -05:00
trapexit
2f3e807e9d
Add getdents based readdir functions for Linux ( #1533 )
2025-09-23 23:51:21 -05:00
trapexit
ca59ae53a5
idmap mount support ( #1523 )
...
* Add idmap mount support
* Further replacement of std::filesystem::path to fs::path
* Update docs regarding idmap support
2025-09-18 00:07:28 -05:00
trapexit
8c649d33ee
Start using std::filesystem::path for fusepath ( #1522 )
2025-09-17 22:51:16 -05:00
trapexit
b18aba86b6
Build improvements ( #1501 )
...
* Remove python dependency
* Remove ecfd
* Improve makefiles
* Make preload.so more 32bit compatible
2025-08-04 23:39:52 -05:00
trapexit
fa851eda3a
Ensure passthrough and keep_cache are mutually exclusive ( #1493 )
2025-07-06 18:31:47 -05:00
trapexit
f852474073
Update the secondary group cache ( #1492 )
...
* Use concurrent_flat_map to build a global cache rather than per
thread.
* Create global maintanence thread manager for clearing unused cache
entries.
2025-07-05 17:05:53 -05:00
trapexit
23824eaeb4
Misc cleanup
2025-06-06 19:10:19 -05:00
trapexit
e310d24615
Add support for FUSE passthrough
2025-06-05 23:47:42 -05:00
trapexit
92312c8507
Add debugging of mutexes ( #1470 )
...
When DEBUG defined it will used timed locks which will log when held
too long along with where.
2025-05-26 00:44:39 -05:00
trapexit
fa3266ca7f
Add podman release build tooling + misc build fixes ( #1455 )
2025-05-08 00:00:53 -05:00
trapexit
344014aa81
Rework thread pool for increased stability + config and doc updates ( #1453 )
...
Also updates fmt to 11.2.0 and replaced syslog usage with a wrapper
leveraging fmt.
2025-05-05 18:28:49 -05:00
Antonio SJ Musumeci
80085c9844
Add statx support
2025-04-04 22:23:16 -05:00
Antonio SJ Musumeci
92ae63e842
Support Linux v6.13 FUSE max_page_limit
2025-03-30 00:07:08 -05:00
Antonio SJ Musumeci
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
trapexit
0197984db3
Send invalidate node request outside lock
2025-01-09 23:22:07 -06:00
Antonio SJ Musumeci
9056898bbf
Move fuse.c and fuse_lowlevel.c to C++
2025-01-09 19:05:32 -06:00
Antonio SJ Musumeci
f0444a1ca9
Add support for 'direct-io-allow-mmap' if supported by kernel
2024-03-21 20:48:42 -05:00
Antonio SJ Musumeci
951eb9540d
Ensure lookups of FUSE_ROOT_ID always return generation=0
2024-02-25 17:14:15 -06:00
Antonio SJ Musumeci
0ca5d6aad0
Add export-support option as possible workaround for NFS EIO issues
2024-02-19 18:58:50 -06:00
Antonio SJ Musumeci
d6a2f06797
Only set allow_other when running as root
2023-10-29 01:44:18 -05:00
Antonio SJ Musumeci
6aa6452d3e
Add flushonclose feature
2023-10-28 19:47:23 -05:00
Antonio SJ Musumeci
620cab2948
Rework thread pool queue depth impl
2023-10-14 00:58:10 -05:00
Antonio SJ Musumeci
766b923116
Fix thread pool destruction where threads don't explicitly exit themselves
2023-09-09 16:48:47 -05:00
Antonio SJ Musumeci
6d2c99e487
Remove unneeded debug logging from thread pool
2023-09-04 18:39:43 -05:00
Antonio SJ Musumeci
0a94bd7cfc
Rework thread pool, add ability to add/remove threads at runtime
2023-09-03 23:36:03 -05:00
Antonio SJ Musumeci
76c8d48dbd
Change threadpool to use concurrentqueue
2023-09-02 00:45:47 -05:00
Antonio SJ Musumeci
0ed03a1535
Use relaxed memory order for atomic counters
2023-08-21 15:43:03 -05:00
Antonio SJ Musumeci
2377cb05b6
Add thread names for easier debugging
2023-08-14 17:51:41 -05:00
Antonio SJ Musumeci
0aafdefc18
Add ability to invalidate gid cache on demand
...
SIGUSR2 or ioctl
2023-08-13 23:30:52 -05:00
Antonio SJ Musumeci
6dcf6111af
Add callbacks for newer functions
...
* setupmapping
* removemapping
* syncfs
* tmpfile
2023-08-13 17:38:13 -05:00
Antonio SJ Musumeci
eb141c4c4e
Fix logging pin-threads details
2023-07-30 23:13:14 -05:00
Antonio SJ Musumeci
51d97bb444
Move fuse thread args out of fuse session object
2023-07-30 22:52:43 -05:00
trapexit
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
Antonio SJ Musumeci
22833bdfe2
Align msg buffer memory to allow O_DIRECT to work
2023-07-09 15:32:11 -05:00
Antonio SJ Musumeci
fa537961c5
Simplify syslog wrapper a bit
2023-07-06 00:13:42 -05:00
Antonio SJ Musumeci
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
Antonio SJ Musumeci
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
Antonio SJ Musumeci
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