]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
crimson/os/seastore: ensure extent is loaded if missing from cache
authormyoungwon oh <ohmyoungwon@gmail.com>
Wed, 25 Feb 2026 12:58:53 +0000 (21:58 +0900)
committermyoungwon oh <ohmyoungwon@gmail.com>
Wed, 25 Feb 2026 12:58:53 +0000 (21:58 +0900)
Signed-off-by: Myoungwon Oh <ohmyoungwon@gmail.com>
src/crimson/os/seastore/omap_manager/log/log_manager.cc

index 73178502c41dc7ab7cad7c72268df25e98264959..6bb44feb78fdf7453a76457b849b603115635279 100644 (file)
@@ -75,7 +75,12 @@ LogManager::omap_set_keys(
     // To find mutable extent in the same transaction
     ret = t.get_extent(ext->get_paddr(), &node);
     assert(ret == Transaction::get_extent_ret::PRESENT);
-    assert(node);
+    if (!node) {
+      // Do full reload if not cached
+      node = co_await log_load_extent<LogNode>(
+       t, ext->get_laddr(), BEGIN_KEY, END_KEY);
+    }
+    ceph_assert(node);
     LogNodeRef log_node = node->template cast<LogNode>();
     bool can_ow = has_ow_key && log_node->can_ow();
     if (can_ow) {