From bcc695b88921b861536409b12feb0f3d418e788e Mon Sep 17 00:00:00 2001 From: Daniel Gryniewicz Date: Fri, 18 Apr 2025 09:56:46 -0400 Subject: [PATCH] RGW - Set the mtime on ReadOp in RadosStore Make sure the mtime is updated every time you call ReadOp::prepare() via RadosStore. Uninitialized mtime is the epoch (Jan 1 1970). Signed-off-by: Daniel Gryniewicz (cherry picked from commit b664449e89bfc22cd6f062ad7dc271ea6756a1c5) --- src/rgw/driver/rados/rgw_sal_rados.cc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/rgw/driver/rados/rgw_sal_rados.cc b/src/rgw/driver/rados/rgw_sal_rados.cc index 9a719bcbd94..a804bd0c00a 100644 --- a/src/rgw/driver/rados/rgw_sal_rados.cc +++ b/src/rgw/driver/rados/rgw_sal_rados.cc @@ -3426,6 +3426,11 @@ RadosObject::RadosReadOp::RadosReadOp(RadosObject *_source, RGWObjectCtx *_octx) int RadosObject::RadosReadOp::prepare(optional_yield y, const DoutPrefixProvider* dpp) { uint64_t obj_size; + ceph::real_time mtime; + + if (!params.lastmod) { + params.lastmod = &mtime; + } parent_op.conds.mod_ptr = params.mod_ptr; parent_op.conds.unmod_ptr = params.unmod_ptr; @@ -3446,6 +3451,7 @@ int RadosObject::RadosReadOp::prepare(optional_yield y, const DoutPrefixProvider source->set_instance(parent_op.state.obj.key.instance); source->set_obj_size(obj_size); + source->set_mtime(*params.lastmod); params.parts_count = parent_op.params.parts_count; return ret; -- 2.39.5