Antonio SJ Musumeci
3e313cd605
Forbid adding mountpoint to branch list
2 years ago
Antonio SJ Musumeci
92ccfd3c89
Hard code setting of allow_other, ignore when set
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
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
a6ca96fa08
Fix printf for 32bit systems
2 years ago
Antonio SJ Musumeci
7606430188
Remove libfuse abstraction in prep for adding request data
2 years ago
Antonio SJ Musumeci
32e2c9c48e
Tweaks for 32bit systems
2 years ago
Antonio SJ Musumeci
3b0d7fb26e
Fix setting of stat vars for symlinkify
2 years ago
Antonio SJ Musumeci
46ce28b149
Error when given invalid policy names
2 years ago
Andrea Gelmini
338e559e53
Fix typos
2 years ago
Antonio SJ Musumeci
c9a935835f
Fix query of attr during symlink
Using getattr when follow-symlink is enabled causes invalid type to the kernel
if symlink pointed to non-symlink.
3 years ago
Antonio SJ Musumeci
c43b464d6c
Call FUSE getattr rather than syscall for extra logic
While more efficient calling regular getattr (stat) leads to incorrect
information being returned and would not work correctly when using
symlinkify.
3 years ago
Antonio SJ Musumeci
e256c88e4c
Get attrs for link, not target
3 years ago
Antonio SJ Musumeci
ee8532c70d
Ensure server handling of locks is disabled
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
313aa2a1d3
Update ghc::filesystem and nonstd::optional
3 years ago
Antonio SJ Musumeci
8def16a811
Fix infinite loop in mfs action policy
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
61c2187c14
Remove config ioctl calls
While they were going to be the new way of interacting with the runtime config
I've decided to use toml based config for mergerfs v3. In that case all updates
will happen through the config file and ioctl will only be used to load/reload
the config rather than a key:value like API.
3 years ago
Antonio SJ Musumeci
7013ff9aeb
Update nonstd::optional to v3.4.0
3 years ago
Antonio SJ Musumeci
3ce0dc56e4
Update ghc::filesystem to v1.5.8
3 years ago
Antonio SJ Musumeci
098f353bf1
pfrd: fix mod by zero error when all branches are filtered
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
d337574665
fix parsing of relative branch paths
4 years ago
Antonio SJ Musumeci
f6e37672b8
reset dentry buffer when rewind'ed
4 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
f50812a9ce
dirname should not return an empty string
4 years ago
Antonio SJ Musumeci
44a98910ba
msp policies stopped before root path
4 years ago
Antonio SJ Musumeci
7edd3c6cf3
config: fix invalid error check when parsing config file
4 years ago
Antonio SJ Musumeci
1b26f4908e
general cleanup, slight memory reduction
4 years ago
Antonio SJ Musumeci
c3fffefbc1
msp policies: used wrong path to check existance
4 years ago
Antonio SJ Musumeci
04844420dc
wyhash: use safety mode 1
mode 0 is not intended for unaligned buffers
4 years ago
Antonio SJ Musumeci
5a3184359d
rework some function error handling
chmod, chown, removexattr, setxattr, truncate, utimens:
* if no errors: return 0
* if no successes: return first error
* if file acted on was the same as related search function: return its value
* return 0
rmdir, unlink:
* if no errors: return 0
* return first error
4 years ago
Antonio SJ Musumeci
610c75fa90
properly return const ref from tofrom string wrapper
4 years ago
Antonio SJ Musumeci
767039c492
option_parser: return 0 when requesting help or version
4 years ago
Antonio SJ Musumeci
fc3453932a
branches: add per branch minfreespace w/ original value as default
example: /mnt/disk0=RW,1G:/mnt/disk1=RW,2G
4 years ago
Antonio SJ Musumeci
6311df774d
optionally use lchmod depending on if on Linux or not (BSD)
4 years ago
Antonio SJ Musumeci
046844083f
add {,ep,msp}pfrd policies
Percentage Free Random Distribution
Chooses a random branch based on the available space percentage free.
IE: if branch A has 1G free and branch B has 2G then B should be chosen
twice as often.
4 years ago
Antonio SJ Musumeci
7fd629ebf3
add #warning to make it more obvious what versions of functions are used
4 years ago
Antonio SJ Musumeci
2fe20b888e
clean up and separate out fs_* files
4 years ago
Antonio SJ Musumeci
2696079601
break fs.hpp up into separate files
4 years ago
Antonio SJ Musumeci
ec15872a1f
cleanup function signatures and definitions
4 years ago
Antonio SJ Musumeci
6cc6524997
change category to enum class
4 years ago
Antonio SJ Musumeci
0371b047f9
change from fasthash64 to wyhash
wyhash has very good performance for small keys (our usecase) and
works on platforms with alignment concerns.
A user had an issue where fasthash64 lead to misaligned reads and
signal exceptions. wyhash does not have such issues and is faster.
4 years ago
Antonio SJ Musumeci
30d13b7f77
inodecalc: add 32bit versions of hashs
4 years ago
Antonio SJ Musumeci
5989d41a86
readdir: use getdents64 for compatibility with ARM64
4 years ago