Merge pull request #528 from trapexit/nc

rename NW (no write) to NC (no create)
This commit is contained in:
trapexit
2018-11-01 23:38:14 -04:00
committed by GitHub
14 changed files with 21 additions and 21 deletions

View File

@ -87,7 +87,7 @@ The 'branches' (formerly 'srcmounts') argument is a colon (':') delimited list o
To make it easier to include multiple branches mergerfs supports [globbing](http://linux.die.net/man/7/glob). **The globbing tokens MUST be escaped when using via the shell else the shell itself will apply the glob itself.**
Each branch can have a suffix of `=RW` (read / write), `=RO` (read only), or `=NW` (no writes). These suffixes work with globs as well and will apply to each path found. `RW` is the default behavior and those paths will be eligible for all policy categories. `RO` will exclude those paths from `create` and `action` policies (just as a filesystem being mounted `ro` would). `NW` will exclude those paths from `create` policies (you can't create but you can change / delete).
Each branch can have a suffix of `=RW` (read / write), `=RO` (read only), or `=NC` (no create). These suffixes work with globs as well and will apply to each path found. `RW` is the default behavior and those paths will be eligible for all policy categories. `RO` will exclude those paths from `create` and `action` policies (just as a filesystem being mounted `ro` would). `NC` will exclude those paths from `create` policies (you can't create but you can change / delete).
```
$ mergerfs -o defaults,allow_other,use_ino /mnt/disk\*:/mnt/cdrom /media/drives
@ -184,7 +184,7 @@ When using non-path preserving policies paths will be cloned to target drives as
#### Policy descriptions
All **create** policies will filter out branches which are mounted **read only** or tagged as **read only** or **no write**. All **action** policies will filter out branches which are mounted or tagged as **read only**.
All **create** policies will filter out branches which are mounted **read only** or tagged as **read only** or **no create**. All **action** policies will filter out branches which are mounted or tagged as **read only**.
If all branches are filtered an error will be returned. Typically EROFS or ENOSPC.

View File

@ -35,10 +35,10 @@ Branch::ro(void) const
}
bool
Branch::ro_or_nw(void) const
Branch::ro_or_nc(void) const
{
return ((mode == Branch::RO) ||
(mode == Branch::NW));
(mode == Branch::NC));
}
string
@ -64,8 +64,8 @@ Branches::to_string(const bool mode_) const
case Branch::RO:
tmp += "RO";
break;
case Branch::NW:
tmp += "NW";
case Branch::NC:
tmp += "NC";
break;
}
}
@ -105,8 +105,8 @@ parse(const string &str_,
branch.mode = Branch::RO;
else if(str::ends_with(str,"=RW"))
branch.mode = Branch::RW;
else if(str::ends_with(str,"=NW"))
branch.mode = Branch::NW;
else if(str::ends_with(str,"=NC"))
branch.mode = Branch::NC;
if(branch.mode != Branch::INVALID)
str.resize(str.size() - 3);

View File

@ -28,14 +28,14 @@ struct Branch
INVALID,
RO,
RW,
NW
NC
};
Mode mode;
std::string path;
bool ro(void) const;
bool ro_or_nw(void) const;
bool ro_or_nc(void) const;
};
class Branches : public std::vector<Branch>

View File

@ -45,7 +45,7 @@ namespace all
{
branch = &branches_[i];
if(branch->ro_or_nw())
if(branch->ro_or_nc())
error_and_continue(error,EROFS);
rv = fs::info(&branch->path,&info);
if(rv == -1)

View File

@ -49,7 +49,7 @@ namespace epall
if(!fs::exists(branch->path,fusepath))
error_and_continue(error,ENOENT);
if(branch->ro_or_nw())
if(branch->ro_or_nc())
error_and_continue(error,EROFS);
rv = fs::info(&branch->path,&info);
if(rv == -1)

View File

@ -50,7 +50,7 @@ namespace epff
if(!fs::exists(branch->path,fusepath))
error_and_continue(error,ENOENT);
if(branch->ro_or_nw())
if(branch->ro_or_nc())
error_and_continue(error,EROFS);
rv = fs::info(&branch->path,&info);
if(rv == -1)

View File

@ -55,7 +55,7 @@ namespace eplfs
if(!fs::exists(branch->path,fusepath))
error_and_continue(error,ENOENT);
if(branch->ro_or_nw())
if(branch->ro_or_nc())
error_and_continue(error,EROFS);
rv = fs::info(&branch->path,&info);
if(rv == -1)

View File

@ -55,7 +55,7 @@ namespace eplus
if(!fs::exists(branch->path,fusepath))
error_and_continue(error,ENOENT);
if(branch->ro_or_nw())
if(branch->ro_or_nc())
error_and_continue(error,EROFS);
rv = fs::info(&branch->path,&info);
if(rv == -1)

View File

@ -55,7 +55,7 @@ namespace epmfs
if(!fs::exists(branch->path,fusepath))
error_and_continue(error,ENOENT);
if(branch->ro_or_nw())
if(branch->ro_or_nc())
error_and_continue(error,EROFS);
rv = fs::info(&branch->path,&info);
if(rv == -1)

View File

@ -46,7 +46,7 @@ namespace ff
{
branch = &branches_[i];
if(branch->ro_or_nw())
if(branch->ro_or_nc())
error_and_continue(error,EROFS);
rv = fs::info(&branch->path,&info);
if(rv == -1)

View File

@ -52,7 +52,7 @@ namespace lfs
{
branch = &branches_[i];
if(branch->ro_or_nw())
if(branch->ro_or_nc())
error_and_continue(error,EROFS);
rv = fs::info(&branch->path,&info);
if(rv == -1)

View File

@ -52,7 +52,7 @@ namespace lus
{
branch = &branches_[i];
if(branch->ro_or_nw())
if(branch->ro_or_nc())
error_and_continue(error,EROFS);
rv = fs::info(&branch->path,&info);
if(rv == -1)

View File

@ -51,7 +51,7 @@ namespace mfs
{
branch = &branches_[i];
if(branch->ro_or_nw())
if(branch->ro_or_nc())
error_and_continue(error,EROFS);
rv = fs::info(&branch->path,&info);
if(rv == -1)

View File

@ -55,7 +55,7 @@ namespace newest
if(!fs::exists(branch->path,fusepath,st))
error_and_continue(error,ENOENT);
if(branch->ro_or_nw())
if(branch->ro_or_nc())
error_and_continue(error,EROFS);
if(st.st_mtime < newest)
continue;