Antonio SJ Musumeci
0aafdefc18
Add ability to invalidate gid cache on demand
SIGUSR2 or ioctl
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
2d9c915641
Return NOTTY for all btrfs ioctl calls
mergerfs tries to pass through ioctl calls but due to the complexity
of btrfs calls their is risk of segfaults. In the future it may be
required to whitelist all supported ioctl calls.
2 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
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
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
1b26f4908e
general cleanup, slight memory reduction
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
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
Andrea Gelmini
3a6738475a
Fix typos
5 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
4c4c27a93e
set uid & gid when calling ioctl
Turns out certain ioctl calls check the effective user id (FS_IOC_SETFLAGS).
6 years ago
Antonio SJ Musumeci
b69819e4b2
ioctl: don't set outbufsz when not needed
6 years ago
Antonio SJ Musumeci
95c0cc741d
replace libfuse's autoconf with makefile
6 years ago
Antonio SJ Musumeci
7bf607bb6b
fix FS_IOC_{GET,SET}{FLAGS,VERSION} ioctl calls
6 years ago
Antonio SJ Musumeci
9d9ee7b71d
general code cleanup
6 years ago
Antonio SJ Musumeci
c5b2415daf
remove `defaults`, hard code atomic_o_trunc, big_writes, and default_permissions
`defaults` is a value used by all filesystems and isn't passed through to
mergerfs when mounting via the fstab or the mount command. This led
to inconsistent application of options. atomic_o_trunc, big_writes, and
default_permissions should be enabled all the time anyway and splice_*
can lead to issues so they are not always enabled.
6 years ago
Antonio SJ Musumeci
9fd3b968fc
make ioctl on directories use open policy
6 years ago
Antonio SJ Musumeci
b55ebba4ed
add tagging branches RW/RO/NW
This allows users to tag a branch as readonly or not for writing regardless
of how the filesystem is mounted. Should simplify deployments and offer
more flexibility.
6 years ago
Antonio SJ Musumeci
162b99e6b8
enable nopath and nullpath_ok
8 years ago
Antonio SJ Musumeci
1dc7bff6e6
wrap most posix filesystem functions
8 years ago
Antonio SJ Musumeci
7e423cd9ce
small tweaks to build on Debian kFreeBSD
8 years ago
Antonio SJ Musumeci
43cbd9c670
move size calculations to use uint64_t. fixes #287
9 years ago
Antonio SJ Musumeci
23b8e4582e
fix ioctl on directories
9 years ago
Antonio SJ Musumeci
6086620e23
use references to srcmounts rather than copies
9 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
e0cf97261c
include default_permissions in default arguments
closes #130
9 years ago
Antonio SJ Musumeci
3163258a33
make changing credentials opportunistic + per thread setgroups cache
closes #129,#131
9 years ago
Antonio SJ Musumeci
f130d07fd8
config get and struct naming cleanup
10 years ago
Antonio SJ Musumeci
52d80299b5
passthrough ioctl args without processing. closes #90
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
51b6d3f647
add category to policies so as to distinguish between creates and searches
10 years ago
Antonio SJ Musumeci
6ca43893ea
separate policies into individual modules
10 years ago
Antonio SJ Musumeci
3c8f12281f
move policy function type from fs to policy
10 years ago
Antonio SJ Musumeci
2bd44568a1
move Path object to separate file
10 years ago
Antonio SJ Musumeci
ccb22c1fbe
create minfreespace option. closes #71
10 years ago
Antonio SJ Musumeci
91671d7364
remove FileInfo and keep only file descriptor
10 years ago
Antonio SJ Musumeci
c022741ffb
revert removal of 'all' policy and relevant behavior. closes #54
10 years ago
Antonio SJ Musumeci
12f393a55e
per FUSE function policies. closes #52 , #53
10 years ago
Antonio SJ Musumeci
b411c63df1
Remove 'all' policy and simplify logic
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
7b0d703f00
only allow manipulation of runtime settings via xattrs. closes #22
11 years ago