]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/librbd/ObjectMap.cc
update sources to v12.2.3
[ceph.git] / ceph / src / librbd / ObjectMap.cc
index 257554dc1718b50f51af419fb60558b1fb6eb9aa..cfc15df629bc2ea253001bc67513807387fd1203 100644 (file)
@@ -141,6 +141,17 @@ void ObjectMap<I>::close(Context *on_finish) {
   req->send();
 }
 
+template <typename I>
+bool ObjectMap<I>::set_object_map(ceph::BitVector<2> &target_object_map) {
+  assert(m_image_ctx.owner_lock.is_locked());
+  assert(m_image_ctx.snap_lock.is_locked());
+  assert(m_image_ctx.test_features(RBD_FEATURE_OBJECT_MAP,
+                                   m_image_ctx.snap_lock));
+  RWLock::RLocker object_map_locker(m_image_ctx.object_map_lock);
+  m_object_map = target_object_map;
+  return true;
+}
+
 template <typename I>
 void ObjectMap<I>::rollback(uint64_t snap_id, Context *on_finish) {
   assert(m_image_ctx.snap_lock.is_locked());