Improve utimens interface
This commit is contained in:
parent
afe4556a0c
commit
a583ff6970
@ -17,7 +17,7 @@ public:
|
||||
virtual void chown(uid_t uid, gid_t gid) = 0;
|
||||
virtual void access(int mask) const = 0;
|
||||
virtual void rename(const boost::filesystem::path &to) = 0;
|
||||
virtual void utimens(const timespec times[2]) = 0;
|
||||
virtual void utimens(const timespec lastAccessTime, const timespec lastModificationTime) = 0;
|
||||
virtual void remove() = 0;
|
||||
};
|
||||
|
||||
|
@ -37,7 +37,7 @@ public:
|
||||
virtual void rmdir(const boost::filesystem::path &path) = 0;
|
||||
virtual void unlink(const boost::filesystem::path &path) = 0;
|
||||
virtual void rename(const boost::filesystem::path &from, const boost::filesystem::path &to) = 0;
|
||||
virtual void utimens(const boost::filesystem::path &path, const timespec times[2]) = 0;
|
||||
virtual void utimens(const boost::filesystem::path &path, timespec lastAccessTime, timespec lastModificationTime) = 0;
|
||||
virtual void statfs(const boost::filesystem::path &path, struct statvfs *fsstat) = 0;
|
||||
//TODO We shouldn't use Dir::Entry here, that's in another layer
|
||||
virtual cpputils::unique_ref<std::vector<Dir::Entry>> readDir(const boost::filesystem::path &path) = 0;
|
||||
|
@ -525,13 +525,12 @@ int Fuse::ftruncate(const bf::path &path, off_t size, fuse_file_info *fileinfo)
|
||||
}
|
||||
}
|
||||
|
||||
//TODO
|
||||
int Fuse::utimens(const bf::path &path, const timespec times[2]) {
|
||||
#ifdef FSPP_LOG
|
||||
LOG(DEBUG) << "utimens(" << path << ", _)";
|
||||
#endif
|
||||
try {
|
||||
_fs->utimens(path, times);
|
||||
_fs->utimens(path, times[0], times[1]);
|
||||
return 0;
|
||||
} catch(const cpputils::AssertFailed &e) {
|
||||
LOG(ERROR) << "AssertFailed in Fuse::utimens: " << e.what();
|
||||
|
@ -290,13 +290,13 @@ unique_ref<vector<Dir::Entry>> FilesystemImpl::readDir(const bf::path &path) {
|
||||
return dir->children();
|
||||
}
|
||||
|
||||
void FilesystemImpl::utimens(const bf::path &path, const timespec times[2]) {
|
||||
void FilesystemImpl::utimens(const bf::path &path, timespec lastAccessTime, timespec lastModificationTime) {
|
||||
PROFILE(_utimensNanosec);
|
||||
auto node = _device->Load(path);
|
||||
if(node == none) {
|
||||
throw fuse::FuseErrnoException(ENOENT);
|
||||
} else {
|
||||
(*node)->utimens(times);
|
||||
(*node)->utimens(lastAccessTime, lastModificationTime);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -44,7 +44,7 @@ public:
|
||||
void unlink(const boost::filesystem::path &path) override;
|
||||
void rename(const boost::filesystem::path &from, const boost::filesystem::path &to) override;
|
||||
cpputils::unique_ref<std::vector<Dir::Entry>> readDir(const boost::filesystem::path &path) override;
|
||||
void utimens(const boost::filesystem::path &path, const timespec times[2]) override;
|
||||
void utimens(const boost::filesystem::path &path, timespec lastAccessTime, timespec lastModificationTime) override;
|
||||
void statfs(const boost::filesystem::path &path, struct statvfs *fsstat) override;
|
||||
void createSymlink(const boost::filesystem::path &to, const boost::filesystem::path &from, uid_t uid, gid_t gid) override;
|
||||
void readSymlink(const boost::filesystem::path &path, char *buf, size_t size) override;
|
||||
|
Loading…
Reference in New Issue
Block a user