Antonio SJ Musumeci
d6a2f06797
Only set allow_other when running as root
1 year ago
Antonio SJ Musumeci
6aa6452d3e
Add flushonclose feature
1 year ago
Antonio SJ Musumeci
fd33df04a3
Update wyhash to 4.2
1 year ago
Antonio SJ Musumeci
569537df9e
Remove use of pthread_getname_np to work with older musl versions
1 year ago
Antonio SJ Musumeci
620cab2948
Rework thread pool queue depth impl
1 year ago
Antonio SJ Musumeci
766b923116
Fix thread pool destruction where threads don't explicitly exit themselves
1 year ago
Antonio SJ Musumeci
6d2c99e487
Remove unneeded debug logging from thread pool
1 year ago
Antonio SJ Musumeci
0a94bd7cfc
Rework thread pool, add ability to add/remove threads at runtime
1 year ago
Antonio SJ Musumeci
76c8d48dbd
Change threadpool to use concurrentqueue
1 year ago
Antonio SJ Musumeci
0ed03a1535
Use relaxed memory order for atomic counters
1 year ago
Antonio SJ Musumeci
2377cb05b6
Add thread names for easier debugging
1 year ago
Antonio SJ Musumeci
0aafdefc18
Add ability to invalidate gid cache on demand
SIGUSR2 or ioctl
1 year ago
Antonio SJ Musumeci
6dcf6111af
Add callbacks for newer functions
* setupmapping
* removemapping
* syncfs
* tmpfile
1 year ago
Antonio SJ Musumeci
eb141c4c4e
Fix logging pin-threads details
1 year ago
Antonio SJ Musumeci
51d97bb444
Move fuse thread args out of fuse session object
1 year ago
Antonio SJ Musumeci
22833bdfe2
Align msg buffer memory to allow O_DIRECT to work
1 year ago
Antonio SJ Musumeci
fa537961c5
Simplify syslog wrapper a bit
1 year ago
Antonio SJ Musumeci
5d6c9cc56a
Fix build on older distros due to std::atomic definitions
std::atomic_uint64_t missing in some older distros
1 year ago
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.
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.
2 years ago
Antonio SJ Musumeci
6bc3d77992
Fix crash when exiting with open deleted files
2 years ago
Antonio SJ Musumeci
373d331f39
Rework fuse read to use same buffers as messages
2 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.
2 years ago
Antonio SJ Musumeci
34310170ac
Add ability to pin read and processing threads
2 years ago
Antonio SJ Musumeci
9adddfc66d
Add option to lazy umount target mount point
2 years ago
Antonio SJ Musumeci
a4491169b0
Remove FUSE_USE_VERSION, no longer used
2 years ago
Antonio SJ Musumeci
7ed91c1668
Backport bug fixes from libfuse3
2 years ago
Antonio SJ Musumeci
92ccfd3c89
Hard code setting of allow_other, ignore when set
2 years ago
Antonio SJ Musumeci
3ee93d4c56
Remove 'nonempty' argument
This makes it like all other filesystems and brings it into alignment
with libfuse3's behavior.
2 years ago
Antonio SJ Musumeci
d11807ef7c
Remove use_ino option and make behavior same as if set
2 years ago
Antonio SJ Musumeci
24423b8d2a
Add async message processing
2 years ago
Antonio SJ Musumeci
094ad862e7
Fix regression testing for implemented functions
2 years ago
Antonio SJ Musumeci
a6ca96fa08
Fix printf for 32bit systems
2 years ago
Antonio SJ Musumeci
d14427ad9e
Fix reading of setxattr name
2 years ago
Antonio SJ Musumeci
ddf5e53aa4
Misc cleanup
2 years ago
Antonio SJ Musumeci
7606430188
Remove libfuse abstraction in prep for adding request data
2 years ago
Antonio SJ Musumeci
dba9c4451a
Remove write_buf, simplify FUSE msg dispatching
2 years ago
Antonio SJ Musumeci
9d056d609f
Remove unnecessary libfuse abstractions
2 years ago
Antonio SJ Musumeci
32e2c9c48e
Tweaks for 32bit systems
2 years ago
Antonio SJ Musumeci
316abba0ac
Update fuse_kernel.h
2 years ago
Antonio SJ Musumeci
14c2ff9ab8
Return ENOENT when dotdot for root node requested
3 years ago
Antonio SJ Musumeci
b95ff8ba3a
Lock less often during logging
3 years ago
Antonio SJ Musumeci
3f060f4512
Change ENOENT to ESTALE for looking up paths to handle rename race conditions
As done in https://github.com/libfuse/libfuse/pull/636
3 years ago
Antonio SJ Musumeci
9ca10b2413
Rework node slab garbage collection to limit blocking work threads
Also remove debug mode from forcing foreground mode
3 years ago
Antonio SJ Musumeci
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.
3 years ago
Antonio SJ Musumeci
18dead4d86
Add new debug printing routines
3 years ago
Antonio SJ Musumeci
5f737cb7bf
Add option to log node memory usage metrics
3 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.
3 years ago
Antonio SJ Musumeci
8150957a01
Fix regression from remember_node refactor
3 years ago
Antonio SJ Musumeci
c929781d08
Add malloc_trim configure test
3 years ago