From: Zhang Song Date: Tue, 13 Aug 2024 02:53:05 +0000 (+0800) Subject: crimson/os/seastore/onode_manager: use laddr_le_t in laddr_packed_t X-Git-Tag: v20.0.0~1167^2~8 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=9f23d741fcaef690de1dcb805a53383d54200665;p=ceph.git 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 --- 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; }