Antonio SJ Musumeci
b3b8e793f9
Change getattr and statx to bespoke policies
* Provides: slight improvement in performance as it no longer will
need to find and then act on the files.
* It doesn't make sense to support all original policy types. Most
people used 'newest' or 'ff' and 'combine' is a better default which
has same runtime as 'newest' but with better output.
2 months ago
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.
1 month ago
trapexit
2412ae7316
Further tweaks to config parsing and error reporting ( #1559 )
* Further tweaks to config parsing and error reporting
* Fix static builds
2 months ago
trapexit
37f10888a9
Add more debugging options to makefiles and cleanup ( #1556 )
3 months ago
trapexit
741128cb23
Fix lack of include for fmt ( #1550 )
3 months ago
trapexit
727c522fb8
Rework config, centralize fuse config ( #1547 )
3 months ago
trapexit
0371f03def
Rework how fuse request context is handled ( #1543 )
3 months ago
trapexit
d18c273293
Allow setting of passthrough max-stack-depth ( #1542 )
3 months ago
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.
3 months ago
trapexit
ca59ae53a5
idmap mount support ( #1523 )
* Add idmap mount support
* Further replacement of std::filesystem::path to fs::path
* Update docs regarding idmap support
4 months ago
trapexit
b18aba86b6
Build improvements ( #1501 )
* Remove python dependency
* Remove ecfd
* Improve makefiles
* Make preload.so more 32bit compatible
5 months ago
trapexit
e310d24615
Add support for FUSE passthrough
7 months ago
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.
8 months ago
Antonio SJ Musumeci
80085c9844
Add statx support
10 months ago
Antonio SJ Musumeci
9056898bbf
Move fuse.c and fuse_lowlevel.c to C++
2 years ago
Antonio SJ Musumeci
f0444a1ca9
Add support for 'direct-io-allow-mmap' if supported by kernel
2 years ago
Antonio SJ Musumeci
951eb9540d
Ensure lookups of FUSE_ROOT_ID always return generation=0
2 years ago
Antonio SJ Musumeci
6aa6452d3e
Add flushonclose feature
2 years ago
Antonio SJ Musumeci
6dcf6111af
Add callbacks for newer functions
* setupmapping
* removemapping
* syncfs
* tmpfile
2 years ago
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.
3 years ago
Antonio SJ Musumeci
373d331f39
Rework fuse read to use same buffers as messages
3 years ago
Antonio SJ Musumeci
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.
3 years ago
Antonio SJ Musumeci
7ed91c1668
Backport bug fixes from libfuse3
3 years ago
Antonio SJ Musumeci
24423b8d2a
Add async message processing
3 years ago
Antonio SJ Musumeci
094ad862e7
Fix regression testing for implemented functions
3 years ago
Antonio SJ Musumeci
d14427ad9e
Fix reading of setxattr name
3 years ago
Antonio SJ Musumeci
7606430188
Remove libfuse abstraction in prep for adding request data
3 years ago
Antonio SJ Musumeci
dba9c4451a
Remove write_buf, simplify FUSE msg dispatching
3 years ago
Antonio SJ Musumeci
9d056d609f
Remove unnecessary libfuse abstractions
3 years ago
Antonio SJ Musumeci
32e2c9c48e
Tweaks for 32bit systems
3 years ago
Antonio SJ Musumeci
18dead4d86
Add new debug printing routines
4 years ago
Antonio SJ Musumeci
930dad31de
Reduce struct node size
* Replace the stat values with a crc32b of them instead (for auto-cache)
* Replace char flag with bitfield
* Remove node generation. nodeid is an unsigned 64bit int. Would take 500K+ years
to rollover at 1M nodes per second.
4 years ago
Antonio SJ Musumeci
6b5c484fbf
Major rework of memory allocation using fixed mem pools
4 years ago
Antonio SJ Musumeci
43a6d66e3c
Major cleanup of libfuse to remove unneeded features
* Remove request interrupt code. Required tracking of all requests unnecesssarily.
* Remove all debugging printing. Have plans to do full replacement.
* Remove deprecated functions.
* Remove unneeded error checking.
* Remove "userdata" which was unused.
* Remove allow_root feature.
4 years ago
Antonio SJ Musumeci
1b26f4908e
general cleanup, slight memory reduction
5 years ago
Antonio SJ Musumeci
3c761b708b
libfuse cleanup: remove libfuse API compatibility
6 years ago
Antonio SJ Musumeci
3bfdd78434
libfuse cleanup: remove cuse
6 years ago
Antonio SJ Musumeci
f9b831eb1a
libfuse cleanup: reindent
6 years ago
Antonio SJ Musumeci
54c41c4994
rework config management
* Add standard way to do str2val and val2str conversion
* Add support for a config file
* Add support for reading and writing settings via ioctl
6 years ago
Antonio SJ Musumeci
d119807adb
restructure readdir, add readdir_plus
Does not enable READDIR_AUTO. Might add in the future.
7 years ago
Antonio SJ Musumeci
4b9f3de814
add ctime support
6 years ago
Antonio SJ Musumeci
903d39f968
add writeback caching
6 years ago
Antonio SJ Musumeci
7cbd88ac81
allow setting of 'max_pages' (via 'fuse_msg_size')
Linux 4.20 and above allow setting the number of pages per FUSE message
upto 256 (4K * 256 = 1MiB). This can greatly increase read and write
speeds depending on the workload.
7 years ago
Antonio SJ Musumeci
8cb7195c3e
add copy_file_range support
7 years ago
Antonio SJ Musumeci
ddf6a2f105
make async_read optional again
7 years ago
Antonio SJ Musumeci
2323c16316
add readdir caching
7 years ago
Antonio SJ Musumeci
1baa706d37
add symlink caching
7 years ago
Antonio SJ Musumeci
5f2221155c
ensure parallel dirops is enabled if capable
7 years ago
Antonio SJ Musumeci
2b019b84b0
ensure async_aio is enabled if capable
7 years ago
Antonio SJ Musumeci
80d56ac94e
add support for POSIX ACLs
7 years ago