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
Antonio SJ Musumeci
4ea0de3ef2
Rework dirents buffer management
3 years ago
Antonio SJ Musumeci
6b5c484fbf
Major rework of memory allocation using fixed mem pools
3 years ago
Antonio SJ Musumeci
5263a65dcf
Remove usage printing regression in mount_bsd
3 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.
3 years ago
Antonio SJ Musumeci
80f30999fa
properly initialize fuse_buf in worker loop
3 years ago
Antonio SJ Musumeci
8adebc9489
new features: follow-symlinks, rename-exdev, link-exdev
* follow-symlinks: allows mergerfs to transparently follow symlinks
* link-exdev: in the event a link returns EXDEV create a symlink instead
* rename-exdev: in the event a rename returns EXDEV move the oldpath and
create a symlink for the newpath
4 years ago
Antonio SJ Musumeci
3900543970
fix segv: zero out data structures
4 years ago
Antonio SJ Musumeci
1b26f4908e
general cleanup, slight memory reduction
4 years ago
Antonio SJ Musumeci
7e173108fd
libfuse cleanup: add more header include guards
4 years ago
KARBOWSKI Piotr
f488debf96
libfuse/Makefile: support CXXFLAGS and LDFLAGS passed via environment
4 years ago
KARBOWSKI Piotr
0bc6711a95
libfuse/Makefile: support $AR
4 years ago
Antonio SJ Musumeci
a925fbe59c
libfuse cleanup: extern cplusplus cleanup
4 years ago
Antonio SJ Musumeci
dc1b698847
libfuse cleanup: remove single threaded
4 years ago
Antonio SJ Musumeci
3c761b708b
libfuse cleanup: remove libfuse API compatibility
4 years ago
Antonio SJ Musumeci
3bfdd78434
libfuse cleanup: remove cuse
4 years ago
Antonio SJ Musumeci
5f12fb6a5f
libfuse cleanup: remove unnecessary files
4 years ago
Antonio SJ Musumeci
f9b831eb1a
libfuse cleanup: reindent
4 years ago
Antonio SJ Musumeci
5989d41a86
readdir: use getdents64 for compatibility with ARM64
4 years ago
Antonio SJ Musumeci
a93bd9f7fa
freebsd: misc cleanups to get freebsd compiling
4 years ago
Antonio SJ Musumeci
c4a85f5fad
readdir: add dirent index array
This removes the risk of corrupted data being sent back to the kernel
should it use the offset from one opendir-readdir in another. In this case
it would at most skip dirents.
According to the standards the offset is only valid when used within
the opendir -> releasedir but NFS uses offsets across independent
calls.
4 years ago
Antonio SJ Musumeci
c0990644e8
remove unnecessary libfuse flags nopath, nullpath_ok, and utime_omit_ok
4 years ago
Antonio SJ Musumeci
62899565e6
temporary fix for short readdirs on NFS
4 years ago
Antonio SJ Musumeci
8ed3a1f36a
debian: fix installing of fresh deb
4 years ago
Antonio SJ Musumeci
dbdd3e22fc
additional readdir refactor cleanup
Differences between readdir and getdents is minimal at best. Leaving code
for now to allow for possible expansion later.
4 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
5 years ago
Antonio SJ Musumeci
698c4147fc
fix getdent name length calculation
5 years ago
Antonio SJ Musumeci
9b2634a1e5
fix name length calculation for musc
5 years ago
Antonio SJ Musumeci
62873d2d3b
use getdents64 on linux
5 years ago