diff --git a/README.md b/README.md index f7be6ae1..85f03e0e 100644 --- a/README.md +++ b/README.md @@ -74,16 +74,18 @@ All policies when used to create will ignore drives which are mounted readonly. | search | access, getattr, getxattr, ioctl, listxattr, open, readlink | | N/A | fallocate, fgetattr, fsync, ftruncate, ioctl, read, readdir, release, statfs, write | -**ioctl** behaves differently if its acting on a directory. It'll use the **getattr** policy to find and open the directory before issuing the **ioctl**. In other cases where something may be searched (to confirm a directory exists across all source mounts) then **getattr** will be used. +Due to FUSE limitations **ioctl** behaves differently if its acting on a directory. It'll use the **getattr** policy to find and open the directory before issuing the **ioctl**. In other cases where something may be searched (to confirm a directory exists across all source mounts) then **getattr** will be used. #### Policy descriptions #### +Generally speaking most policies when called to create will filter out drives which are readonly or have less than `minfreespace`. + | Policy | Description | |--------------|-------------| -| all | Applies action to all found. For searches it will behave like first found **ff**. For `create` functions it will only apply to `mkdir`, `mkdnod`, and `symlink`. | -| eplfs (existing path, least free space) | If the path exists on multiple drives use the one with the least free space and is greater than **minfreespace**. Falls back to **lfs**. | -| epmfs (existing path, most free space) | If the path exists on multiple drives use the one with the most free space and is greater than **minfreespace**. Falls back to **mfs**. | -| erofs | Exclusively return `-1` with `errno` set to EROFS. By setting `create` functions to this you can in effect turn the filesystem readonly. | +| all | Search category: acts like **ff**. Action category: apply to all found. Create category: for **mkdir**, **mknod**, and **symlink** perform on all read/write drives with **minfreespace**. **create** filters the same way but acts like **ff**. | +| eplfs (existing path, least free space) | If the path exists on multiple drives use the one with the least free space. Falls back to **lfs**. | +| epmfs (existing path, most free space) | If the path exists on multiple drives use the one with the most free space. Falls back to **mfs**. | +| erofs | Exclusively return **-1** with **errno** set to **EROFS**. By setting **create** functions to this you can in effect turn the filesystem readonly. | | ff (first found) | Given the order of the drives, as defined at mount time or when configured via xattr interface, act on the first one found. | | fwfs (first with free space) | Pick the first drive which has at least **minfreespace**. Falls back to **mfs**. | | lfs (least free space) | Pick the drive with the least available free space but more than **minfreespace**. Falls back to **mfs**. | diff --git a/man/mergerfs.1 b/man/mergerfs.1 index 87779903..5773c842 100644 --- a/man/mergerfs.1 +++ b/man/mergerfs.1 @@ -153,13 +153,17 @@ statfs, write T} .TE .PP -\f[B]ioctl\f[] behaves differently if its acting on a directory. +Due to FUSE limitations \f[B]ioctl\f[] behaves differently if its acting +on a directory. It\[aq]ll use the \f[B]getattr\f[] policy to find and open the directory before issuing the \f[B]ioctl\f[]. In other cases where something may be searched (to confirm a directory exists across all source mounts) then \f[B]getattr\f[] will be used. .SS Policy descriptions .PP +Generally speaking most policies when called to create will filter out +drives which are readonly or have less than \f[C]minfreespace\f[]. +.PP .TS tab(@); l l. @@ -172,30 +176,33 @@ _ T{ all T}@T{ -Applies action to all found. -For searches it will behave like first found \f[B]ff\f[]. -For \f[C]create\f[] functions it will only apply to \f[C]mkdir\f[], -\f[C]mkdnod\f[], and \f[C]symlink\f[]. +Search category: acts like \f[B]ff\f[]. +Action category: apply to all found. +Create category: for \f[B]mkdir\f[], \f[B]mknod\f[], and +\f[B]symlink\f[] perform on all read/write drives with +\f[B]minfreespace\f[]. +\f[B]create\f[] filters the same way but acts like \f[B]ff\f[]. T} T{ eplfs (existing path, least free space) T}@T{ If the path exists on multiple drives use the one with the least free -space and is greater than \f[B]minfreespace\f[]. +space. Falls back to \f[B]lfs\f[]. T} T{ epmfs (existing path, most free space) T}@T{ If the path exists on multiple drives use the one with the most free -space and is greater than \f[B]minfreespace\f[]. +space. Falls back to \f[B]mfs\f[]. T} T{ erofs T}@T{ -Exclusively return \f[C]\-1\f[] with \f[C]errno\f[] set to EROFS. -By setting \f[C]create\f[] functions to this you can in effect turn the +Exclusively return \f[B]\-1\f[] with \f[B]errno\f[] set to +\f[B]EROFS\f[]. +By setting \f[B]create\f[] functions to this you can in effect turn the filesystem readonly. T} T{