]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/crimson/os/seastore/lba_manager.cc
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / crimson / os / seastore / lba_manager.cc
index 73411dcf7e3acaa6aae9223320e0a74ca3b79da6..d113bbd1e957c6b96de5e992de1171224094db40 100644 (file)
@@ -1,17 +1,31 @@
 // -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
 // vim: ts=8 sw=2 smarttab
 
-#include "crimson/os/seastore/segment_manager.h"
-#include "crimson/os/seastore/cache.h"
 #include "crimson/os/seastore/lba_manager.h"
 #include "crimson/os/seastore/lba_manager/btree/btree_lba_manager.h"
 
-namespace crimson::os::seastore::lba_manager {
+namespace crimson::os::seastore {
 
-LBAManagerRef create_lba_manager(
-  SegmentManager &segment_manager,
-  Cache &cache) {
-  return LBAManagerRef(new btree::BtreeLBAManager(segment_manager, cache));
+LBAManager::update_mappings_ret
+LBAManager::update_mappings(
+  Transaction& t,
+  const std::list<LogicalCachedExtentRef>& extents)
+{
+  return trans_intr::do_for_each(extents,
+                                [this, &t](auto &extent) {
+    return update_mapping(
+      t,
+      extent->get_laddr(),
+      extent->get_prior_paddr_and_reset(),
+      extent->get_paddr(),
+      nullptr  // all the extents should have already been
+               // added to the fixed_kv_btree
+    );
+  });
+}
+
+LBAManagerRef lba_manager::create_lba_manager(Cache &cache) {
+  return LBAManagerRef(new btree::BtreeLBAManager(cache));
 }
 
 }