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
Antonio SJ Musumeci
0709b2e447
add missing options to usage
4 years ago
Antonio SJ Musumeci
15a0aedd25
cleanup: move some config data structures to separate files
4 years ago
Antonio SJ Musumeci
a93bd9f7fa
freebsd: misc cleanups to get freebsd compiling
4 years ago
Antonio SJ Musumeci
139e61efaa
nfsopenhack: remove empty file check
4 years ago
Antonio SJ Musumeci
93218a343a
NFS open/creat hack
A hack to work around non-POSIX NFS <-> FUSE behavior where it turns
an open(O_EXCL|O_CREAT,0444) into multiple calls that results in
EACCES.
4 years ago
Antonio SJ Musumeci
3ec137c4ad
policy: add "most shared path" policies
Like path preserving but walks back the path till a match is found. Should
cover the usecase where someone wants a "less strict" form of path
preservation.
4 years ago
Andrea Gelmini
3a6738475a
Fix typos
4 years ago
Andrea Gelmini
468d42088a
Removed duplicated include
4 years ago
Antonio SJ Musumeci
08d267fc61
moveonenospc: enhance the feature to allow using a policy
Just like functions you can now set a policy for moveonfreenospc. This
allows for more flexibility.
For backwards compatibility moveonfreenospc=true is converted to
moveonfreenospc=mfs.
minfreespace does apply which is slightly different from original behavior.
4 years ago
Antonio SJ Musumeci
c0990644e8
remove unnecessary libfuse flags nopath, nullpath_ok, and utime_omit_ok
4 years ago
Antonio SJ Musumeci
b4397f7f2e
add 'inodecalc' option to allow selection of inode calculation algo
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
3a46ec9fab
fix filename hashing error
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
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
a646fe016d
change inode conversion algo to reduce collision
5 years ago
Antonio SJ Musumeci
576ff3694e
add cache.writeback to xattrs
5 years ago
Antonio SJ Musumeci
903d39f968
add writeback caching
5 years ago
Antonio SJ Musumeci
4d82ed9324
fix short writes on >2GB files when cloning file
5 years ago
Antonio SJ Musumeci
0fffabfbe3
only return 1 branch for rand/eprand policies
5 years ago
Antonio SJ Musumeci
50ad648ce4
initialize mutex to fix lockup
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).
5 years ago
Antonio SJ Musumeci
5ca928e436
accept old arguments for backwards compatibility
6 years ago
Antonio SJ Musumeci
7cbd88ac81
allow setting of 'max_pages' (via 'fuse_msg_size')
Linux 4.20 and above allow setting the number of pages per FUSE message
upto 256 (4K * 256 = 1MiB). This can greatly increase read and write
speeds depending on the workload.
6 years ago
Antonio SJ Musumeci
8cb7195c3e
add copy_file_range support
6 years ago
Antonio SJ Musumeci
529a953e30
add file caching across opens and runtime control
6 years ago
Antonio SJ Musumeci
ddf6a2f105
make async_read optional again
6 years ago
Antonio SJ Musumeci
2323c16316
add readdir caching
6 years ago
Antonio SJ Musumeci
1baa706d37
add symlink caching
6 years ago