From 10db430ea019f1b0abd6f1bc6085ba8c01e872af Mon Sep 17 00:00:00 2001 From: Shilpa Jagannath Date: Tue, 19 Mar 2024 10:59:35 -0400 Subject: [PATCH] rgw/multisite: allow modified object acls to be replicated Signed-off-by: Shilpa Jagannath (cherry picked from commit f5f6194c07b40c50913e956e06aaa3709d4d53aa) --- src/rgw/driver/rados/rgw_sal_rados.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/rgw/driver/rados/rgw_sal_rados.cc b/src/rgw/driver/rados/rgw_sal_rados.cc index 64444e4f8b7..d4a7f56e979 100644 --- a/src/rgw/driver/rados/rgw_sal_rados.cc +++ b/src/rgw/driver/rados/rgw_sal_rados.cc @@ -2271,12 +2271,15 @@ int RadosObject::read_attrs(const DoutPrefixProvider* dpp, RGWRados::Object::Rea int RadosObject::set_obj_attrs(const DoutPrefixProvider* dpp, Attrs* setattrs, Attrs* delattrs, optional_yield y) { Attrs empty; + // make a tiny adjustment to the existing mtime so that fetch_remote_obj() + // won't return ERR_NOT_MODIFIED when syncing the modified object + const auto mtime = state.mtime + std::chrono::nanoseconds(1); return store->getRados()->set_attrs(dpp, rados_ctx, bucket->get_info(), get_obj(), setattrs ? *setattrs : empty, delattrs ? delattrs : nullptr, - y); + y, mtime); } int RadosObject::get_obj_attrs(optional_yield y, const DoutPrefixProvider* dpp, rgw_obj* target_obj) -- 2.39.5