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.
|
|
#include "func_getattr_combine.hpp"
#include "fs_lstat.hpp"
#include "fs_inode.hpp"
#include "timespec_utils.hpp"
int Func2::GetattrCombine::process(const Branches &branches_, const fs::Path &fusepath_, struct stat *st_, fuse_timeouts_t *timeout_) { int rv; Branches::CPtr branches; fs::Path fullpath;
branches = branches_;
for(const auto &branch : *branches) { struct stat st;
fullpath = branch.path; fullpath += fusepath_; rv = fs::lstat(fullpath.c_str(),&st); if(rv == -1) continue; if(st_->st_ino == 0) { *st_ = st; continue; }
st_->st_atim = TimeSpec::newest(st_->st_atim,st.st_atim); st_->st_ctim = TimeSpec::newest(st_->st_ctim,st.st_ctim); st_->st_mtim = TimeSpec::newest(st_->st_mtim,st.st_mtim); st_->st_nlink += st.st_nlink; }
if(st_->st_ino == 0) return -ENOENT;
fs::inode::calc(fusepath_,st_);
return 0; }
|