From 2e7aea7b0fd73d1270909499eb09768d539f823c Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Tue, 22 Nov 2022 20:36:30 +0800 Subject: [PATCH] crimson/os: print pointer using fmt::ptr() also, partial specialize fmt::format<> for boost::instrusive_ptr<>, so we can use fmt::ptr() to print boost::intrusive_ptr<>, just like how we print std::shared_ptr<>. Signed-off-by: Kefu Chai --- .../seastore/onode_manager/staged-fltree/node.cc | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/crimson/os/seastore/onode_manager/staged-fltree/node.cc b/src/crimson/os/seastore/onode_manager/staged-fltree/node.cc index 5e44f471fd1..6f08f4d3c48 100644 --- a/src/crimson/os/seastore/onode_manager/staged-fltree/node.cc +++ b/src/crimson/os/seastore/onode_manager/staged-fltree/node.cc @@ -17,6 +17,13 @@ SET_SUBSYS(seastore_onode); +namespace fmt { +template +const void* ptr(const ::boost::intrusive_ptr& p) { + return p.get(); +} +} + namespace crimson::os::seastore::onode { /* * tree_cursor_t @@ -717,13 +724,13 @@ eagain_ifuture> Node::load( if (!field_type) { ERRORT("load addr={:x}, is_level_tail={} error, " "got invalid header -- {}", - c.t, addr, expect_is_level_tail, extent); + c.t, addr, expect_is_level_tail, fmt::ptr(extent)); ceph_abort("fatal error"); } if (header.get_is_level_tail() != expect_is_level_tail) { ERRORT("load addr={:x}, is_level_tail={} error, " "is_level_tail mismatch -- {}", - c.t, addr, expect_is_level_tail, extent); + c.t, addr, expect_is_level_tail, fmt::ptr(extent)); ceph_abort("fatal error"); } @@ -732,7 +739,7 @@ eagain_ifuture> Node::load( if (extent->get_length() != c.vb.get_leaf_node_size()) { ERRORT("load addr={:x}, is_level_tail={} error, " "leaf length mismatch -- {}", - c.t, addr, expect_is_level_tail, extent); + c.t, addr, expect_is_level_tail, fmt::ptr(extent)); ceph_abort("fatal error"); } auto impl = LeafNodeImpl::load(extent, *field_type); @@ -743,7 +750,7 @@ eagain_ifuture> Node::load( if (extent->get_length() != c.vb.get_internal_node_size()) { ERRORT("load addr={:x}, is_level_tail={} error, " "internal length mismatch -- {}", - c.t, addr, expect_is_level_tail, extent); + c.t, addr, expect_is_level_tail, fmt::ptr(extent)); ceph_abort("fatal error"); } auto impl = InternalNodeImpl::load(extent, *field_type); -- 2.39.5