From 64c3b90e86a1c1837fe47a5a8eaa9229857fd5e0 Mon Sep 17 00:00:00 2001 From: myoungwon oh Date: Wed, 25 Feb 2026 21:58:53 +0900 Subject: [PATCH] crimson/os/seastore: ensure extent is loaded if missing from cache Signed-off-by: Myoungwon Oh --- src/crimson/os/seastore/omap_manager/log/log_manager.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/crimson/os/seastore/omap_manager/log/log_manager.cc b/src/crimson/os/seastore/omap_manager/log/log_manager.cc index 73178502c41..6bb44feb78f 100644 --- a/src/crimson/os/seastore/omap_manager/log/log_manager.cc +++ b/src/crimson/os/seastore/omap_manager/log/log_manager.cc @@ -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( + t, ext->get_laddr(), BEGIN_KEY, END_KEY); + } + ceph_assert(node); LogNodeRef log_node = node->template cast(); bool can_ow = has_ow_key && log_node->can_ow(); if (can_ow) { -- 2.47.3