From: Xuehan Xu Date: Sat, 4 Jul 2026 15:21:23 +0000 (+0800) Subject: crimson/os/seastore/transaction_manager: add the shadow to the trans' X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=953710c5e61f18a20bd030bdaad042489429a5aa;p=ceph.git crimson/os/seastore/transaction_manager: add the shadow to the trans' read_set when getting extents Signed-off-by: Xuehan Xu --- diff --git a/src/crimson/os/seastore/transaction_manager.h b/src/crimson/os/seastore/transaction_manager.h index 1f7c84f7a332..50aa55d1588c 100644 --- a/src/crimson/os/seastore/transaction_manager.h +++ b/src/crimson/os/seastore/transaction_manager.h @@ -1521,8 +1521,19 @@ private: assert(cursor.get_pos() != BTREENODE_POS_NULL); ceph_assert(t.get_trans_id() == cursor.ctx.trans.get_trans_id()); auto p = cursor.parent->cast(); - return p->template get_child( + auto v = p->template get_child( t, cursor.ctx.cache, cursor.get_pos(), cursor.key); + if (v.has_child()) { + return v.get_child_fut_as( + ).si_then([&t](auto lext) { + if (auto shadow = lext->get_shadow();\ + shadow && shadow->is_stable()) { + std::ignore = t.maybe_add_to_read_set(shadow); + } + return lext; + }); + } + return v; } base_iertr::future read_cursor_by_type(