Loading src/daemon/backend/metadata/merge.cpp +7 −0 Original line number Diff line number Diff line Loading @@ -181,6 +181,10 @@ MetadataMergeOperator::FullMergeV2(const MergeOperationInput& merge_in, auto operand_id = MergeOperand::get_id(serialized_op); auto parameters = MergeOperand::get_params(serialized_op); if constexpr(gkfs::config::metadata::use_mtime) { md.mtime(std::time(nullptr)); } if(operand_id == OperandID::increase_size) { auto op = IncreaseSizeOperand(parameters); if(op.append()) { Loading @@ -199,6 +203,9 @@ MetadataMergeOperator::FullMergeV2(const MergeOperationInput& merge_in, assert(op.size() < fsize); // we assume no concurrency here fsize = op.size(); } else if(operand_id == OperandID::create) { if constexpr(gkfs::config::metadata::use_ctime) { md.ctime(std::time(nullptr)); } continue; } else { throw ::runtime_error("Unrecognized merge operand ID: " + Loading tests/integration/status/test_status.py +13 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ import sh import sys import pytest from harness.logger import logger from datetime import datetime nonexisting = "nonexisting" Loading @@ -52,6 +53,11 @@ def test_statx(gkfs_daemon, gkfs_client): file_a = topdir / "file_a" subdir_a = dir_a / "subdir_a" # creation timestamp # it is only checked if mtime and ctime are greater than # the creation timestamp due to inprecesion between test and daemon ts = int(datetime.timestamp(datetime.now())) # create topdir ret = gkfs_client.mkdir( topdir, Loading Loading @@ -91,6 +97,13 @@ def test_statx(gkfs_daemon, gkfs_client): assert ret.retval == 0 assert (ret.statbuf.stx_size == 2) # if greater zero, it is activated in config.hpp if ret.statbuf.stx_mtime.tv_sec > 0: assert (ret.statbuf.stx_mtime.tv_sec > ts) if ret.statbuf.stx_ctime.tv_sec > 0: assert (ret.statbuf.stx_ctime.tv_sec > ts) return Loading Loading
src/daemon/backend/metadata/merge.cpp +7 −0 Original line number Diff line number Diff line Loading @@ -181,6 +181,10 @@ MetadataMergeOperator::FullMergeV2(const MergeOperationInput& merge_in, auto operand_id = MergeOperand::get_id(serialized_op); auto parameters = MergeOperand::get_params(serialized_op); if constexpr(gkfs::config::metadata::use_mtime) { md.mtime(std::time(nullptr)); } if(operand_id == OperandID::increase_size) { auto op = IncreaseSizeOperand(parameters); if(op.append()) { Loading @@ -199,6 +203,9 @@ MetadataMergeOperator::FullMergeV2(const MergeOperationInput& merge_in, assert(op.size() < fsize); // we assume no concurrency here fsize = op.size(); } else if(operand_id == OperandID::create) { if constexpr(gkfs::config::metadata::use_ctime) { md.ctime(std::time(nullptr)); } continue; } else { throw ::runtime_error("Unrecognized merge operand ID: " + Loading
tests/integration/status/test_status.py +13 −0 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ import sh import sys import pytest from harness.logger import logger from datetime import datetime nonexisting = "nonexisting" Loading @@ -52,6 +53,11 @@ def test_statx(gkfs_daemon, gkfs_client): file_a = topdir / "file_a" subdir_a = dir_a / "subdir_a" # creation timestamp # it is only checked if mtime and ctime are greater than # the creation timestamp due to inprecesion between test and daemon ts = int(datetime.timestamp(datetime.now())) # create topdir ret = gkfs_client.mkdir( topdir, Loading Loading @@ -91,6 +97,13 @@ def test_statx(gkfs_daemon, gkfs_client): assert ret.retval == 0 assert (ret.statbuf.stx_size == 2) # if greater zero, it is activated in config.hpp if ret.statbuf.stx_mtime.tv_sec > 0: assert (ret.statbuf.stx_mtime.tv_sec > ts) if ret.statbuf.stx_ctime.tv_sec > 0: assert (ret.statbuf.stx_ctime.tv_sec > ts) return Loading