mergerfs/src
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.
2015-09-25 15:14:17 -04:00
..
access.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
access.hpp change fuse functions to use the fuse namespace 2015-07-15 10:53:13 -04:00
assert.hpp initial code commit 2014-05-19 07:05:53 -04:00
buildmap.hpp rework policy code 2014-05-28 05:35:58 -04:00
buildvector.hpp rework policy code 2014-05-28 05:35:58 -04:00
category.cpp per FUSE function policies. closes #52, #53 2015-02-23 20:02:50 -05:00
category.hpp per FUSE function policies. closes #52, #53 2015-02-23 20:02:50 -05:00
chmod.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
chmod.hpp change fuse functions to use the fuse namespace 2015-07-15 10:53:13 -04:00
chown.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
chown.hpp change fuse functions to use the fuse namespace 2015-07-15 10:53:13 -04:00
clone.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
clone.hpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
config.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
config.hpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
create.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
create.hpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
destroy.cpp change fuse functions to use the fuse namespace 2015-07-15 10:53:13 -04:00
destroy.hpp change fuse functions to use the fuse namespace 2015-07-15 10:53:13 -04:00
fallocate.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
fallocate.hpp config get and struct naming cleanup 2015-08-05 09:28:53 -04:00
fgetattr.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
fgetattr.hpp config get and struct naming cleanup 2015-08-05 09:28:53 -04:00
fileinfo.hpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
flush.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
flush.hpp config get and struct naming cleanup 2015-08-05 09:28:53 -04:00
fs.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
fs.hpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
fs_attr.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
fs_attr.hpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
fs_clonefile.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
fs_clonefile.hpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
fs_clonepath.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
fs_clonepath.hpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
fs_movefile.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
fs_movefile.hpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
fs_path.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
fs_path.hpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
fs_xattr.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
fs_xattr.hpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
fsync.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
fsync.hpp config get and struct naming cleanup 2015-08-05 09:28:53 -04:00
ftruncate.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
ftruncate.hpp config get and struct naming cleanup 2015-08-05 09:28:53 -04:00
fusefunc.cpp revert removal of 'all' policy and relevant behavior. closes #54 2015-03-05 21:01:22 -05:00
fusefunc.hpp per FUSE function policies. closes #52, #53 2015-02-23 20:02:50 -05:00
getattr.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
getattr.hpp change fuse functions to use the fuse namespace 2015-07-15 10:53:13 -04:00
getxattr.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
getxattr.hpp change fuse functions to use the fuse namespace 2015-07-15 10:53:13 -04:00
init.cpp include default_permissions in default arguments 2015-09-14 22:12:24 -04:00
init.hpp config get and struct naming cleanup 2015-08-05 09:28:53 -04:00
ioctl.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
ioctl.hpp config get and struct naming cleanup 2015-08-05 09:28:53 -04:00
link.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
link.hpp change fuse functions to use the fuse namespace 2015-07-15 10:53:13 -04:00
listxattr.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
listxattr.hpp change fuse functions to use the fuse namespace 2015-07-15 10:53:13 -04:00
mergerfs.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
mergerfs.hpp initial code commit 2014-05-19 07:05:53 -04:00
mkdir.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
mkdir.hpp change fuse functions to use the fuse namespace 2015-07-15 10:53:13 -04:00
mknod.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
mknod.hpp change fuse functions to use the fuse namespace 2015-07-15 10:53:13 -04:00
num.cpp fix non-suffixed setxattr of user.mergerfs.minfreespace 2015-09-05 23:08:11 -04:00
num.hpp add str to size_t conversion code 2015-07-05 21:02:42 -04:00
open.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
open.hpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
opendir.cpp config get and struct naming cleanup 2015-08-05 09:28:53 -04:00
opendir.hpp config get and struct naming cleanup 2015-08-05 09:28:53 -04:00
option_parser.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
option_parser.hpp config get and struct naming cleanup 2015-08-05 09:28:53 -04:00
policy.cpp create errno policies for simulating errors. closes #107 2015-08-27 22:38:23 -04:00
policy.hpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
policy_all.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
policy_einval.cpp create errno policies for simulating errors. closes #107 2015-08-27 22:38:23 -04:00
policy_enosys.cpp create errno policies for simulating errors. closes #107 2015-08-27 22:38:23 -04:00
policy_enotsup.cpp create errno policies for simulating errors. closes #107 2015-08-27 22:38:23 -04:00
policy_epmfs.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
policy_erofs.cpp create errno policies for simulating errors. closes #107 2015-08-27 22:38:23 -04:00
policy_exdev.cpp create errno policies for simulating errors. closes #107 2015-08-27 22:38:23 -04:00
policy_ff.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
policy_ffwp.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
policy_fwfs.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
policy_invalid.cpp create errno policies for simulating errors. closes #107 2015-08-27 22:38:23 -04:00
policy_lfs.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
policy_mfs.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
policy_newest.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
policy_rand.cpp stop auto calculating and storing fullpath in policies 2015-07-03 10:40:47 -04:00
read.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
read.hpp config get and struct naming cleanup 2015-08-05 09:28:53 -04:00
read_buf.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
read_buf.hpp config get and struct naming cleanup 2015-08-05 09:28:53 -04:00
readdir.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
readdir.hpp config get and struct naming cleanup 2015-08-05 09:28:53 -04:00
readlink.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
readlink.hpp change fuse functions to use the fuse namespace 2015-07-15 10:53:13 -04:00
release.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
release.hpp config get and struct naming cleanup 2015-08-05 09:28:53 -04:00
releasedir.cpp config get and struct naming cleanup 2015-08-05 09:28:53 -04:00
releasedir.hpp config get and struct naming cleanup 2015-08-05 09:28:53 -04:00
removexattr.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
removexattr.hpp change fuse functions to use the fuse namespace 2015-07-15 10:53:13 -04:00
rename.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
rename.hpp change fuse functions to use the fuse namespace 2015-07-15 10:53:13 -04:00
resources.cpp attempt to set priority to -10 on startup. closes #65 2015-03-17 20:39:20 -04:00
resources.hpp attempt to set priority to -10 on startup. closes #65 2015-03-17 20:39:20 -04:00
rmdir.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
rmdir.hpp change fuse functions to use the fuse namespace 2015-07-15 10:53:13 -04:00
rwlock.hpp pass const strings by reference. closes #33 2014-11-10 21:01:20 -05:00
setxattr.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
setxattr.hpp change fuse functions to use the fuse namespace 2015-07-15 10:53:13 -04:00
statfs.cpp make changing credentials opportunistic + per thread setgroups cache 2015-09-14 19:00:07 -04:00
statfs.hpp change fuse functions to use the fuse namespace 2015-07-15 10:53:13 -04:00
str.cpp refactor and simplify getxattr for user.mergerfs.\* 2015-09-03 16:56:54 -04:00
str.hpp refactor and simplify getxattr for user.mergerfs.\* 2015-09-03 16:56:54 -04:00
symlink.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
symlink.hpp change fuse functions to use the fuse namespace 2015-07-15 10:53:13 -04:00
truncate.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
truncate.hpp change fuse functions to use the fuse namespace 2015-07-15 10:53:13 -04:00
ugid.cpp make changing credentials opportunistic + per thread setgroups cache 2015-09-14 19:00:07 -04:00
ugid.hpp make changing credentials opportunistic + per thread setgroups cache 2015-09-14 19:00:07 -04:00
ugid_linux.hpp make changing credentials opportunistic + per thread setgroups cache 2015-09-14 19:00:07 -04:00
ugid_linux.ipp make changing credentials opportunistic + per thread setgroups cache 2015-09-14 19:00:07 -04:00
ugid_rwlock.hpp make changing credentials opportunistic + per thread setgroups cache 2015-09-14 19:00:07 -04:00
ugid_rwlock.ipp make changing credentials opportunistic + per thread setgroups cache 2015-09-14 19:00:07 -04:00
unlink.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
unlink.hpp change fuse functions to use the fuse namespace 2015-07-15 10:53:13 -04:00
utimens.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
utimens.hpp config get and struct naming cleanup 2015-08-05 09:28:53 -04:00
write.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
write.hpp config get and struct naming cleanup 2015-08-05 09:28:53 -04:00
write_buf.cpp move on enospc when writing feature. closes #141 2015-09-25 15:14:17 -04:00
write_buf.hpp config get and struct naming cleanup 2015-08-05 09:28:53 -04:00
xattr.hpp only allow manipulation of runtime settings via xattrs. closes #22 2014-07-29 09:26:11 -04:00