diff --git a/include/dwarfs/filesystem_v2.h b/include/dwarfs/filesystem_v2.h index e88776ce..35f21bf1 100644 --- a/include/dwarfs/filesystem_v2.h +++ b/include/dwarfs/filesystem_v2.h @@ -155,7 +155,7 @@ class filesystem_v2 { return impl_->readlink(entry, mode); } - int statvfs(vfs_stat* stbuf) const { return impl_->statvfs(stbuf); } + void statvfs(vfs_stat* stbuf) const { impl_->statvfs(stbuf); } int open(inode_view entry) const { return impl_->open(entry); } @@ -279,7 +279,7 @@ class filesystem_v2 { std::error_code& ec) const = 0; virtual std::string readlink(inode_view entry, readlink_mode mode) const = 0; - virtual int statvfs(vfs_stat* stbuf) const = 0; + virtual void statvfs(vfs_stat* stbuf) const = 0; virtual int open(inode_view entry) const = 0; virtual int open(inode_view entry, std::error_code& ec) const = 0; virtual size_t diff --git a/include/dwarfs/internal/metadata_v2.h b/include/dwarfs/internal/metadata_v2.h index ac0753eb..42a57349 100644 --- a/include/dwarfs/internal/metadata_v2.h +++ b/include/dwarfs/internal/metadata_v2.h @@ -134,7 +134,7 @@ class metadata_v2 { return impl_->readlink(iv, mode, ec); } - int statvfs(vfs_stat* stbuf) const { return impl_->statvfs(stbuf); } + void statvfs(vfs_stat* stbuf) const { impl_->statvfs(stbuf); } std::optional get_chunks(int inode) const { return impl_->get_chunks(inode); @@ -210,7 +210,7 @@ class metadata_v2 { virtual std::string readlink(inode_view iv, readlink_mode mode, std::error_code& ec) const = 0; - virtual int statvfs(vfs_stat* stbuf) const = 0; + virtual void statvfs(vfs_stat* stbuf) const = 0; virtual std::optional get_chunks(int inode) const = 0; diff --git a/src/dwarfs/filesystem_v2.cpp b/src/dwarfs/filesystem_v2.cpp index 73716350..53584f85 100644 --- a/src/dwarfs/filesystem_v2.cpp +++ b/src/dwarfs/filesystem_v2.cpp @@ -430,7 +430,7 @@ class filesystem_ final : public filesystem_v2::impl { std::string readlink(inode_view entry, readlink_mode mode, std::error_code& ec) const override; std::string readlink(inode_view entry, readlink_mode mode) const override; - int statvfs(vfs_stat* stbuf) const override; + void statvfs(vfs_stat* stbuf) const override; int open(inode_view entry) const override; int open(inode_view entry, std::error_code& ec) const override; size_t read(uint32_t inode, char* buf, size_t size, @@ -1120,10 +1120,10 @@ std::string filesystem_::readlink(inode_view entry, } template -int filesystem_::statvfs(vfs_stat* stbuf) const { +void filesystem_::statvfs(vfs_stat* stbuf) const { PERFMON_CLS_SCOPED_SECTION(statvfs) // TODO: not sure if that's the right abstraction... - return meta_.statvfs(stbuf); + meta_.statvfs(stbuf); } template diff --git a/src/dwarfs/internal/metadata_v2.cpp b/src/dwarfs/internal/metadata_v2.cpp index 6ff49b0a..c2b22da4 100644 --- a/src/dwarfs/internal/metadata_v2.cpp +++ b/src/dwarfs/internal/metadata_v2.cpp @@ -502,7 +502,7 @@ class metadata_ final : public metadata_v2::impl { std::string readlink(inode_view iv, readlink_mode mode, std::error_code& ec) const override; - int statvfs(vfs_stat* stbuf) const override; + void statvfs(vfs_stat* stbuf) const override; std::optional get_chunks(int inode) const override; @@ -1712,7 +1712,7 @@ std::string metadata_::readlink(inode_view iv, readlink_mode mode, } template -int metadata_::statvfs(vfs_stat* stbuf) const { +void metadata_::statvfs(vfs_stat* stbuf) const { ::memset(stbuf, 0, sizeof(*stbuf)); // Make sure bsize and frsize are the same, as doing otherwise can confuse @@ -1728,8 +1728,6 @@ int metadata_::statvfs(vfs_stat* stbuf) const { stbuf->files = inode_count_; stbuf->readonly = true; stbuf->namemax = PATH_MAX; - - return 0; } template diff --git a/src/dwarfs_main.cpp b/src/dwarfs_main.cpp index 9eeb2820..a4c644fe 100644 --- a/src/dwarfs_main.cpp +++ b/src/dwarfs_main.cpp @@ -849,20 +849,18 @@ int op_statfs_common(LogProxy& log_, dwarfs_userdata& userdata, return checked_call(log_, [&] { vfs_stat stbuf; - auto err = userdata.fs.statvfs(&stbuf); + userdata.fs.statvfs(&stbuf); - if (err == 0) { - ::memset(st, 0, sizeof(*st)); - copy_vfs_stat(st, stbuf); + ::memset(st, 0, sizeof(*st)); + copy_vfs_stat(st, stbuf); #ifndef _WIN32 - if (stbuf.readonly) { - st->f_flag |= ST_RDONLY; - } -#endif + if (stbuf.readonly) { + st->f_flag |= ST_RDONLY; } +#endif - return err; + return 0; }); } diff --git a/test/dwarfs_benchmark.cpp b/test/dwarfs_benchmark.cpp index 9601700e..097d36b8 100644 --- a/test/dwarfs_benchmark.cpp +++ b/test/dwarfs_benchmark.cpp @@ -418,8 +418,8 @@ BENCHMARK_DEFINE_F(filesystem, readlink)(::benchmark::State& state) { BENCHMARK_DEFINE_F(filesystem, statvfs)(::benchmark::State& state) { for (auto _ : state) { vfs_stat buf; - auto r = fs->statvfs(&buf); - ::benchmark::DoNotOptimize(r); + fs->statvfs(&buf); + ::benchmark::DoNotOptimize(buf); } }