]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/os/sesatore/lba_manager/btree: let leaf be depth 1
authorSamuel Just <sjust@redhat.com>
Tue, 7 Jul 2020 18:57:34 +0000 (11:57 -0700)
committerSamuel Just <sjust@redhat.com>
Thu, 16 Jul 2020 23:16:42 +0000 (16:16 -0700)
This way, we can let depth 0 be the actual logical extents.

Signed-off-by: Samuel Just <sjust@redhat.com>
src/crimson/os/seastore/lba_manager/btree/btree_lba_manager.cc
src/crimson/os/seastore/lba_manager/btree/lba_btree_node_impl.cc

index f46359601654ec9182d851c7984a358351aec614..a2ee499f4df41065c46e671af8187f211b4ccf49 100644 (file)
@@ -27,10 +27,11 @@ BtreeLBAManager::mkfs_ret BtreeLBAManager::mkfs(
     auto root_leaf = cache.alloc_new_extent<LBALeafNode>(
       t,
       LBA_BLOCK_SIZE);
+    root_leaf->set_depth(1);
     root_leaf->set_size(0);
     croot->get_lba_root() =
       root_t{
-        0,
+        1,
         0,
         root_leaf->get_paddr(),
         make_record_relative_paddr(0)};
index bb6a3dec3a12b3ff903cf44033373be3e30f6c40..c2cfbe4358e78df2ee6a6ba3bc5f5d8a168f1690 100644 (file)
@@ -456,7 +456,8 @@ Cache::get_extent_ertr::future<LBANodeRef> get_lba_btree_extent(
   paddr_t offset,
   paddr_t base) {
   offset = offset.maybe_relative_to(base);
-  if (depth > 0) {
+  ceph_assert(depth > 0);
+  if (depth > 1) {
     logger().debug(
       "get_lba_btree_extent: reading internal at offset {}, depth {}",
       offset,