Antonio SJ Musumeci
d6a2f06797
Only set allow_other when running as root
1 year ago
Antonio SJ Musumeci
a7069153bd
Warn if not running as root
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
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
eebd6e9eb4
Actively report to syslog when waiting for mounts
2 years ago
Antonio SJ Musumeci
486c5d3734
Add ability to set readahead of mergerfs and branches
2 years ago
Antonio SJ Musumeci
373d331f39
Rework fuse read to use same buffers as messages
2 years ago
Antonio SJ Musumeci
9effeb6869
Add "per-process" file caching feature
Allows chosing page caching based on process name.
2 years ago
Antonio SJ Musumeci
9adddfc66d
Add option to lazy umount target mount point
2 years ago
Antonio SJ Musumeci
a7113bb163
Allow setting of scheduling priority
2 years ago
Antonio SJ Musumeci
939eb3996a
Add option to wait for branches to become new mounts
branches-mount-timeout=UINT64 in seconds (default: 0)
2 years ago
Antonio SJ Musumeci
7606430188
Remove libfuse abstraction in prep for adding request data
2 years ago
Antonio SJ Musumeci
46ce28b149
Error when given invalid policy names
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
538467b86d
config: rework global config, remove rwlock, make branches RCU like
Also added unit tests. Should have done separately but found a number of bugs.
4 years ago
Antonio SJ Musumeci
ec15872a1f
cleanup function signatures and definitions
4 years ago
Antonio SJ Musumeci
c0990644e8
remove unnecessary libfuse flags nopath, nullpath_ok, and utime_omit_ok
5 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
d119807adb
restructure readdir, add readdir_plus
Does not enable READDIR_AUTO. Might add in the future.
6 years ago
Antonio SJ Musumeci
8cb7195c3e
add copy_file_range support
6 years ago
Antonio SJ Musumeci
1ca70521a4
remove 'remote' flock support
6 years ago
Antonio SJ Musumeci
6ecc618d83
remove .fuse_hidden file creation
addresses #521
mergerfs is written using libfuse's high level API. The HLAPI forces a certain
behavior with regard to unlinking or rename overwriting of open files. It
renames the file to .fuse_hiddenXXXXXX and when incoming requests refer
to the unlinked file it will use path based calls and use that path.
This behavior leads to rmdirs failing or some software noticing
the .fuse_hidden files.
This patch changes the HLAPI and removes entirely the .fuse_hidden behavior.
See the README for more.
6 years ago
Antonio SJ Musumeci
0918dfd117
make attr, entry, negative_entry cache timeouts runtime configurable
6 years ago
Antonio SJ Musumeci
9d9ee7b71d
general code cleanup
6 years ago
Antonio SJ Musumeci
87b2795f2b
set direct_io per open/create, now runtime configurable
6 years ago
Antonio SJ Musumeci
de0985c135
add libfuse 2.9.7 to repo and build against libfuse.a
8 years ago
Antonio SJ Musumeci
87c2f2f9dc
add nullrw feature to facilitate benchmarking
8 years ago
Antonio SJ Musumeci
162b99e6b8
enable nopath and nullpath_ok
8 years ago
Antonio SJ Musumeci
8b976ab3c1
support older libfuse without utime_omit_ok flag
8 years ago
Antonio SJ Musumeci
617195d71e
enable utime_omit_ok flag
8 years ago
Antonio SJ Musumeci
7b4e1ea36d
remove clone command
8 years ago
Antonio SJ Musumeci
1aa76a54c2
use different read and write functions when using direct_io
8 years ago
Antonio SJ Musumeci
8f594e17d7
add flock
8 years ago
Antonio SJ Musumeci
242af777be
move from MIT to ISC license. closes #194
9 years ago
Antonio SJ Musumeci
5808ab7795
move on enospc when writing feature. closes #141
This feature mimics the standard mhddfs behavior but is more thorough.
If a write fails and the errno is set to ENOSPC then mergerfs will (if
the feature is enabled) attempt to move the file to the drive with
the most free space but only if it has enough room for the file plus
the amount to be written. If that transfer is successful it will then
unlink the original file and attempt the previously failed write again.
The copy includes copying the path and file including the acls, owners,
attributes, extended attributes, and timestamps.
9 years ago
Antonio SJ Musumeci
f130d07fd8
config get and struct naming cleanup
10 years ago
Antonio SJ Musumeci
983fa9100d
change fuse functions to use the fuse namespace
10 years ago
Antonio SJ Musumeci
b2cd79154a
stop auto calculating and storing fullpath in policies
10 years ago
Antonio SJ Musumeci
5fb277529f
attempt to set priority to -10 on startup. closes #65
10 years ago
Antonio SJ Musumeci
d1f3bd82e8
add clonepath tool
10 years ago
Antonio SJ Musumeci
031b87f674
slight refactoring
10 years ago
Antonio SJ Musumeci
6c3ff01a0a
pass const strings by reference. closes #33
10 years ago
Antonio SJ Musumeci
613b996296
support RHEL6. closes #29
10 years ago
Antonio SJ Musumeci
075d62d647
add support for ioctl on directories. closes #27
10 years ago
Antonio SJ Musumeci
ccb0ac1463
generate the controlfile data on the fly. closes #19
11 years ago
Antonio SJ Musumeci
716453596a
add flush callback. closes #16
11 years ago
Antonio SJ Musumeci
dd666079b6
add {read,write}_buf functions. closes #15
11 years ago
Antonio SJ Musumeci
652a299ac1
add fgetattr. closes #5
11 years ago
Antonio SJ Musumeci
aab90b0503
rework policy code
11 years ago