]> git.apps.os.sepia.ceph.com Git - ceph.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>
Wed, 5 Jun 2024 16:36:31 +0000 (12:36 -0400)
Signed-off-by: Shilpa Jagannath <smanjara@redhat.com>
src/rgw/driver/rados/rgw_sal_rados.cc

index eace9df5f3fcfa3906e29c13ea1da21488329270..9057bc7af4489791acdab8001fd7be20923ae257 100644 (file)
@@ -2289,12 +2289,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)