From 9f23d741fcaef690de1dcb805a53383d54200665 Mon Sep 17 00:00:00 2001 From: Zhang Song Date: Tue, 13 Aug 2024 10:53:05 +0800 Subject: [PATCH] crimson/os/seastore/onode_manager: use laddr_le_t in laddr_packed_t laddr_t is no longer POD type after changing it to struct, use laddr_le_t instead Signed-off-by: Zhang Song --- .../os/seastore/onode_manager/staged-fltree/node_layout.h | 2 +- .../os/seastore/onode_manager/staged-fltree/node_types.h | 4 ++-- .../os/seastore/onode_manager/staged-fltree/stages/stage.h | 2 +- .../onode_manager/staged-fltree/stages/sub_items_stage.cc | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/crimson/os/seastore/onode_manager/staged-fltree/node_layout.h b/src/crimson/os/seastore/onode_manager/staged-fltree/node_layout.h index e6490f7632c..960ea6ba411 100644 --- a/src/crimson/os/seastore/onode_manager/staged-fltree/node_layout.h +++ b/src/crimson/os/seastore/onode_manager/staged-fltree/node_layout.h @@ -375,7 +375,7 @@ class NodeLayoutT final : public InternalNodeImpl, public LeafNodeImpl { auto value_ptr = node_stage.get_end_p_laddr(); int offset = reinterpret_cast(value_ptr) - p_start; os << "\n tail value: " - << value_ptr->value + << laddr_t(value_ptr->value) << " " << size << "B" << " @" << offset << "B"; } diff --git a/src/crimson/os/seastore/onode_manager/staged-fltree/node_types.h b/src/crimson/os/seastore/onode_manager/staged-fltree/node_types.h index 975fceedac8..7b28bdb33fe 100644 --- a/src/crimson/os/seastore/onode_manager/staged-fltree/node_types.h +++ b/src/crimson/os/seastore/onode_manager/staged-fltree/node_types.h @@ -44,10 +44,10 @@ inline std::ostream& operator<<(std::ostream &os, const node_type_t& type) { } struct laddr_packed_t { - laddr_t value; + laddr_le_t value; } __attribute__((packed)); inline std::ostream& operator<<(std::ostream& os, const laddr_packed_t& laddr) { - return os << "laddr_packed(" << laddr.value << ")"; + return os << "laddr_packed(" << laddr_t(laddr.value) << ")"; } using match_stat_t = int8_t; diff --git a/src/crimson/os/seastore/onode_manager/staged-fltree/stages/stage.h b/src/crimson/os/seastore/onode_manager/staged-fltree/stages/stage.h index 140ddba2ff5..10fa5f9518d 100644 --- a/src/crimson/os/seastore/onode_manager/staged-fltree/stages/stage.h +++ b/src/crimson/os/seastore/onode_manager/staged-fltree/stages/stage.h @@ -1443,7 +1443,7 @@ struct staged { if constexpr (NODE_TYPE == node_type_t::LEAF) { os << *value_ptr; } else { - os << value_ptr->value; + os << laddr_t(value_ptr->value); } os << " " << size << "B" << " @" << offset << "B"; diff --git a/src/crimson/os/seastore/onode_manager/staged-fltree/stages/sub_items_stage.cc b/src/crimson/os/seastore/onode_manager/staged-fltree/stages/sub_items_stage.cc index 28e6f7102c2..38fd0ae8e0f 100644 --- a/src/crimson/os/seastore/onode_manager/staged-fltree/stages/sub_items_stage.cc +++ b/src/crimson/os/seastore/onode_manager/staged-fltree/stages/sub_items_stage.cc @@ -22,7 +22,7 @@ const laddr_packed_t* internal_sub_items_t::insert_at( auto p_insert = const_cast(p_shift_end) - size; auto item = internal_sub_item_t{ - snap_gen_t::from_key(key), laddr_packed_t{value}}; + snap_gen_t::from_key(key), laddr_packed_t{laddr_le_t{value}}}; mut.copy_in_absolute(p_insert, item); return &reinterpret_cast(p_insert)->value; } @@ -79,7 +79,7 @@ void internal_sub_items_t::Appender::append( { p_append -= sizeof(internal_sub_item_t); auto item = internal_sub_item_t{ - snap_gen_t::from_key(key), laddr_packed_t{value}}; + snap_gen_t::from_key(key), laddr_packed_t{laddr_le_t{value}}}; p_mut->copy_in_absolute(p_append, item); p_value = &reinterpret_cast(p_append)->value; } -- 2.39.5