]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/rgw/rgw_datalog.cc
import ceph quincy 17.2.4
[ceph.git] / ceph / src / rgw / rgw_datalog.cc
index 89e41471e11c75458158e17291180434d3d699d7..b52e52000774420de465eaef75eedb76fc861f1e 100644 (file)
@@ -566,13 +566,17 @@ void RGWDataChangesLog::register_renew(const rgw_bucket_shard& bs)
 void RGWDataChangesLog::update_renewed(const rgw_bucket_shard& bs,
                                       real_time expiration)
 {
-  std::scoped_lock l{lock};
+  std::unique_lock l{lock};
   ChangeStatusPtr status;
   _get_change(bs, status);
+  l.unlock();
+
 
   ldout(cct, 20) << "RGWDataChangesLog::update_renewd() bucket_name="
                 << bs.bucket.name << " shard_id=" << bs.shard_id
                 << " expiration=" << expiration << dendl;
+
+  std::unique_lock sl(status->lock);
   status->cur_expiration = expiration;
 }