diff options
author | Benjamin Barenblat <bbaren@mit.edu> | 2016-02-21 22:44:47 -0500 |
---|---|---|
committer | Benjamin Barenblat <bbaren@mit.edu> | 2016-02-21 22:48:53 -0500 |
commit | b5c9c8540a29babf990ff72b1eb5904424f1abb0 (patch) | |
tree | 423e7f183a75a453134d302f9a7f0ff1121f5cbb /src/operations.cc | |
parent | 604841c6c81608a7dfcfe05ab75fa0c7ede2a890 (diff) |
Implement ftruncate
Diffstat (limited to 'src/operations.cc')
-rw-r--r-- | src/operations.cc | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/operations.cc b/src/operations.cc index b1c568a..a82ad99 100644 --- a/src/operations.cc +++ b/src/operations.cc @@ -224,6 +224,11 @@ int Releasedir(const char*, fuse_file_info* const file_info) { return ReleaseResource<Directory>(file_info->fh); } +int Ftruncate(const char*, const off_t size, fuse_file_info* const file_info) { + reinterpret_cast<File*>(file_info->fh)->Truncate(size); + return 0; +} + int Rmdir(const char* c_path) { const std::string path(c_path); if (path == "/") { @@ -275,6 +280,7 @@ fuse_operations FuseOperations(File* const root) { result.write = CATCH_AND_RETURN_EXCEPTIONS(Write); result.utimens = CATCH_AND_RETURN_EXCEPTIONS(Utimens); result.release = CATCH_AND_RETURN_EXCEPTIONS(Release); + result.ftruncate = CATCH_AND_RETURN_EXCEPTIONS(Ftruncate); result.unlink = CATCH_AND_RETURN_EXCEPTIONS(Unlink); result.symlink = CATCH_AND_RETURN_EXCEPTIONS(Symlink); |