mirror of https://github.com/trapexit/mergerfs.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.0 KiB
53 lines
1.0 KiB
#include "func_listxattr_ff.hpp"
|
|
|
|
#include "error.hpp"
|
|
#include "fs_llistxattr.hpp"
|
|
|
|
|
|
std::string_view
|
|
Func2::ListxattrFF::name() const
|
|
{
|
|
return "ff";
|
|
}
|
|
|
|
static
|
|
ssize_t
|
|
_listxattr_ff(const Branches &branches_,
|
|
const fs::path &fusepath_,
|
|
char *list_,
|
|
const size_t size_)
|
|
{
|
|
Err err;
|
|
ssize_t rv;
|
|
fs::path fullpath;
|
|
|
|
for(const auto &branch : branches_)
|
|
{
|
|
fullpath = branch.path / fusepath_;
|
|
|
|
rv = fs::llistxattr(fullpath,list_,size_);
|
|
switch(rv)
|
|
{
|
|
case -ERANGE:
|
|
case -ENOTSUP:
|
|
case -E2BIG:
|
|
return rv;
|
|
default:
|
|
if(rv >= 0)
|
|
return rv;
|
|
err = rv;
|
|
break;
|
|
}
|
|
}
|
|
|
|
return err;
|
|
}
|
|
|
|
ssize_t
|
|
Func2::ListxattrFF::operator()(const Branches &branches_,
|
|
const fs::path &fusepath_,
|
|
char *list_,
|
|
const size_t size_)
|
|
{
|
|
return ::_listxattr_ff(branches_,fusepath_,list_,size_);
|
|
}
|