From 7524e57262ba7fd2d3a2e691d7ba74c2908487a7 Mon Sep 17 00:00:00 2001 From: Antonio SJ Musumeci Date: Thu, 1 Nov 2018 23:37:45 -0400 Subject: [PATCH] rename NW (no write) to NC (no create) --- README.md | 4 ++-- src/branch.cpp | 12 ++++++------ src/branch.hpp | 4 ++-- src/policy_all.cpp | 2 +- src/policy_epall.cpp | 2 +- src/policy_epff.cpp | 2 +- src/policy_eplfs.cpp | 2 +- src/policy_eplus.cpp | 2 +- src/policy_epmfs.cpp | 2 +- src/policy_ff.cpp | 2 +- src/policy_lfs.cpp | 2 +- src/policy_lus.cpp | 2 +- src/policy_mfs.cpp | 2 +- src/policy_newest.cpp | 2 +- 14 files changed, 21 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index 67e499a9..a124ac32 100644 --- a/README.md +++ b/README.md @@ -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. diff --git a/src/branch.cpp b/src/branch.cpp index 2dca7081..5a3d0b13 100644 --- a/src/branch.cpp +++ b/src/branch.cpp @@ -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); diff --git a/src/branch.hpp b/src/branch.hpp index f7cf3c62..5a54ba87 100644 --- a/src/branch.hpp +++ b/src/branch.hpp @@ -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 diff --git a/src/policy_all.cpp b/src/policy_all.cpp index 5fa720fd..f95c5ace 100644 --- a/src/policy_all.cpp +++ b/src/policy_all.cpp @@ -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) diff --git a/src/policy_epall.cpp b/src/policy_epall.cpp index cde22b0b..097526dc 100644 --- a/src/policy_epall.cpp +++ b/src/policy_epall.cpp @@ -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) diff --git a/src/policy_epff.cpp b/src/policy_epff.cpp index 16bfc9b0..718b9345 100644 --- a/src/policy_epff.cpp +++ b/src/policy_epff.cpp @@ -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) diff --git a/src/policy_eplfs.cpp b/src/policy_eplfs.cpp index 15f1dfec..9db6129a 100644 --- a/src/policy_eplfs.cpp +++ b/src/policy_eplfs.cpp @@ -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) diff --git a/src/policy_eplus.cpp b/src/policy_eplus.cpp index ecea14f9..a9636d9e 100644 --- a/src/policy_eplus.cpp +++ b/src/policy_eplus.cpp @@ -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) diff --git a/src/policy_epmfs.cpp b/src/policy_epmfs.cpp index 37b332d1..6450b87b 100644 --- a/src/policy_epmfs.cpp +++ b/src/policy_epmfs.cpp @@ -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) diff --git a/src/policy_ff.cpp b/src/policy_ff.cpp index 74672bed..5ca15388 100644 --- a/src/policy_ff.cpp +++ b/src/policy_ff.cpp @@ -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) diff --git a/src/policy_lfs.cpp b/src/policy_lfs.cpp index 787ec42c..f66014c4 100644 --- a/src/policy_lfs.cpp +++ b/src/policy_lfs.cpp @@ -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) diff --git a/src/policy_lus.cpp b/src/policy_lus.cpp index e41c5e44..75799066 100644 --- a/src/policy_lus.cpp +++ b/src/policy_lus.cpp @@ -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) diff --git a/src/policy_mfs.cpp b/src/policy_mfs.cpp index aa87fe3e..471a2731 100644 --- a/src/policy_mfs.cpp +++ b/src/policy_mfs.cpp @@ -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) diff --git a/src/policy_newest.cpp b/src/policy_newest.cpp index b3436046..6bac8c84 100644 --- a/src/policy_newest.cpp +++ b/src/policy_newest.cpp @@ -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;