From ad3f49688625a85a174a45a0d0f0f3cfdbcff965 Mon Sep 17 00:00:00 2001 From: Julius Athenstaedt Date: Thu, 9 Nov 2023 17:39:55 +0100 Subject: [PATCH 1/2] calculates blocksize by dividing size / 512 as it is legacy in the linux kernel, only if renaming is deactivated --- include/common/common_defs.hpp | 7 +++++++ src/client/preload_util.cpp | 2 ++ 2 files changed, 9 insertions(+) diff --git a/include/common/common_defs.hpp b/include/common/common_defs.hpp index c9d224387..d0643696d 100644 --- a/include/common/common_defs.hpp +++ b/include/common/common_defs.hpp @@ -66,4 +66,11 @@ constexpr auto na_sm = "na+sm"; } // namespace protocol } // namespace gkfs::rpc +namespace gkfs::config::stats { +/** + * Number 512-byte blocks allocated as it is in the linux kernel (struct_stat.h) + */ +constexpr auto st_nblocksize = 512; +} // namespace gkfs::config::stats + #endif // GEKKOFS_COMMON_DEFS_HPP diff --git a/src/client/preload_util.cpp b/src/client/preload_util.cpp index 2a77c37a3..750d24081 100644 --- a/src/client/preload_util.cpp +++ b/src/client/preload_util.cpp @@ -271,6 +271,8 @@ metadata_to_stat(const std::string& path, const gkfs::metadata::Metadata& md, if(CTX->fs_conf()->blocks_state) { // last one will not encounter a // delimiter anymore attr.st_blocks = md.blocks(); + } else { + attr.st_blocks = md.size() / gkfs::config::stats::st_nblocksize; } return 0; } -- GitLab From e227163b78b5057e6b5bbb3f1f04215a5b141130 Mon Sep 17 00:00:00 2001 From: Marc Vef Date: Tue, 28 Nov 2023 19:52:14 +0100 Subject: [PATCH 2/2] Review: config name change --- include/common/common_defs.hpp | 8 +++----- src/client/preload_util.cpp | 5 ++--- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/include/common/common_defs.hpp b/include/common/common_defs.hpp index d0643696d..e9e65a748 100644 --- a/include/common/common_defs.hpp +++ b/include/common/common_defs.hpp @@ -66,11 +66,9 @@ constexpr auto na_sm = "na+sm"; } // namespace protocol } // namespace gkfs::rpc -namespace gkfs::config::stats { -/** - * Number 512-byte blocks allocated as it is in the linux kernel (struct_stat.h) - */ +namespace gkfs::config::syscall::stat { +// Number 512-byte blocks allocated as it is in the linux kernel (struct_stat.h) constexpr auto st_nblocksize = 512; -} // namespace gkfs::config::stats +} // namespace gkfs::config::syscall::stat #endif // GEKKOFS_COMMON_DEFS_HPP diff --git a/src/client/preload_util.cpp b/src/client/preload_util.cpp index 750d24081..0fdf59d36 100644 --- a/src/client/preload_util.cpp +++ b/src/client/preload_util.cpp @@ -268,11 +268,10 @@ metadata_to_stat(const std::string& path, const gkfs::metadata::Metadata& md, if(CTX->fs_conf()->link_cnt_state) { attr.st_nlink = md.link_count(); } - if(CTX->fs_conf()->blocks_state) { // last one will not encounter a - // delimiter anymore + if(CTX->fs_conf()->blocks_state) { attr.st_blocks = md.blocks(); } else { - attr.st_blocks = md.size() / gkfs::config::stats::st_nblocksize; + attr.st_blocks = md.size() / gkfs::config::syscall::stat::st_nblocksize; } return 0; } -- GitLab