]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
rgw/multisite: allow modified object acls to be replicated
authorShilpa Jagannath <smanjara@redhat.com>
Tue, 19 Mar 2024 14:59:35 +0000 (10:59 -0400)
committerShilpa Jagannath <smanjara@redhat.com>
Thu, 11 Jul 2024 20:32:36 +0000 (16:32 -0400)
Signed-off-by: Shilpa Jagannath <smanjara@redhat.com>
(cherry picked from commit f5f6194c07b40c50913e956e06aaa3709d4d53aa)

src/rgw/driver/rados/rgw_sal_rados.cc

index 64444e4f8b729acf00b174695ccbf136628018bf..d4a7f56e9794aac211db260a47ae85479df57371 100644 (file)
@@ -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)