mirror of
https://github.com/trapexit/mergerfs.git
synced 2025-03-05 01:48:41 +08:00
elevate privileges when calling clonepath. closes #41
This commit is contained in:
parent
6276ce9779
commit
c2cbb93c25
@ -70,7 +70,10 @@ _create(const fs::SearchFunc searchFunc,
|
|||||||
return -errno;
|
return -errno;
|
||||||
|
|
||||||
if(createpath[0].base != existingpath[0].base)
|
if(createpath[0].base != existingpath[0].base)
|
||||||
fs::clonepath(existingpath[0].base,createpath[0].base,dirname);
|
{
|
||||||
|
const mergerfs::ugid::SetResetGuard ugid(0,0);
|
||||||
|
fs::clonepath(existingpath[0].base,createpath[0].base,dirname);
|
||||||
|
}
|
||||||
|
|
||||||
path = fs::make_path(createpath[0].base,fusepath);
|
path = fs::make_path(createpath[0].base,fusepath);
|
||||||
|
|
||||||
|
@ -73,7 +73,11 @@ _link(const fs::SearchFunc searchFunc,
|
|||||||
fs::find::ffwp(srcmounts,todir,topaths);
|
fs::find::ffwp(srcmounts,todir,topaths);
|
||||||
if(topaths.size() > 0)
|
if(topaths.size() > 0)
|
||||||
{
|
{
|
||||||
fs::clonepath(topaths[0].base,i->base,todir);
|
{
|
||||||
|
const mergerfs::ugid::SetResetGuard ugid(0,0);
|
||||||
|
fs::clonepath(topaths[0].base,i->base,todir);
|
||||||
|
}
|
||||||
|
|
||||||
lrv = ::link(pathfrom.c_str(),pathto.c_str());
|
lrv = ::link(pathfrom.c_str(),pathto.c_str());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -64,7 +64,10 @@ _mkdir(const fs::SearchFunc searchFunc,
|
|||||||
|
|
||||||
rv = createPathFunc(srcmounts,dirname,createpath);
|
rv = createPathFunc(srcmounts,dirname,createpath);
|
||||||
if(createpath[0].base != existingpath[0].base)
|
if(createpath[0].base != existingpath[0].base)
|
||||||
fs::clonepath(existingpath[0].base,createpath[0].base,dirname);
|
{
|
||||||
|
const mergerfs::ugid::SetResetGuard ugid(0,0);
|
||||||
|
fs::clonepath(existingpath[0].base,createpath[0].base,dirname);
|
||||||
|
}
|
||||||
|
|
||||||
path = fs::make_path(createpath[0].base,fusepath);
|
path = fs::make_path(createpath[0].base,fusepath);
|
||||||
|
|
||||||
|
@ -66,7 +66,10 @@ _mknod(const fs::SearchFunc searchFunc,
|
|||||||
|
|
||||||
createPathFunc(srcmounts,dirname,createpath);
|
createPathFunc(srcmounts,dirname,createpath);
|
||||||
if(existingpath[0].base != createpath[0].base)
|
if(existingpath[0].base != createpath[0].base)
|
||||||
fs::clonepath(existingpath[0].base,createpath[0].base,dirname);
|
{
|
||||||
|
const mergerfs::ugid::SetResetGuard ugid(0,0);
|
||||||
|
fs::clonepath(existingpath[0].base,createpath[0].base,dirname);
|
||||||
|
}
|
||||||
|
|
||||||
path = fs::make_path(createpath[0].base,fusepath);
|
path = fs::make_path(createpath[0].base,fusepath);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user