From: Yingxin Cheng Date: Thu, 13 Mar 2025 08:21:10 +0000 (+0800) Subject: crimson/os/seastore: introduce rename_omap_root() with src and dest onodes X-Git-Tag: testing/wip-pdonnell-testing-20250324.181635-debug~63^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=5bcccabe7e0c46ee4ee1a9bba5aec9877845931f;p=ceph-ci.git crimson/os/seastore: introduce rename_omap_root() with src and dest onodes Signed-off-by: Yingxin Cheng --- diff --git a/src/crimson/os/seastore/onode.h b/src/crimson/os/seastore/onode.h index 6acae932642..3013ed8a587 100644 --- a/src/crimson/os/seastore/onode.h +++ b/src/crimson/os/seastore/onode.h @@ -105,9 +105,8 @@ public: laddr_t get_data_hint() const { return get_hint(); } - omap_root_t get_root(omap_type_t type, extent_len_t block_size) const { - return get_layout().get_root(type).get( - get_metadata_hint(block_size)); + const omap_root_le_t& get_root(omap_type_t type) const { + return get_layout().get_root(type); } friend std::ostream& operator<<(std::ostream &out, const Onode &rhs); }; diff --git a/src/crimson/os/seastore/seastore.cc b/src/crimson/os/seastore/seastore.cc index f75d35ca15a..3029118a560 100644 --- a/src/crimson/os/seastore/seastore.cc +++ b/src/crimson/os/seastore/seastore.cc @@ -1914,9 +1914,9 @@ SeaStore::Shard::_rename( { auto olayout = onode->get_layout(); uint32_t size = olayout.size; - auto omap_root = get_omap_root(omap_type_t::OMAP, *onode); - auto xattr_root = get_omap_root(omap_type_t::XATTR, *onode); - auto log_root = get_omap_root(omap_type_t::LOG, *onode); + auto omap_root = rename_omap_root(omap_type_t::OMAP, *onode, *d_onode); + auto xattr_root = rename_omap_root(omap_type_t::XATTR, *onode, *d_onode); + auto log_root = rename_omap_root(omap_type_t::LOG, *onode, *d_onode); auto object_data = olayout.object_data.get(); auto oi_bl = ceph::bufferlist::static_from_mem( &olayout.oi[0], diff --git a/src/crimson/os/seastore/seastore.h b/src/crimson/os/seastore/seastore.h index 4500d46d6d5..76227af6edc 100644 --- a/src/crimson/os/seastore/seastore.h +++ b/src/crimson/os/seastore/seastore.h @@ -467,7 +467,16 @@ public: */ omap_root_t get_omap_root(omap_type_t type, Onode& onode) const { - return onode.get_root(type, device->get_block_size()); + return onode.get_root(type).get( + onode.get_metadata_hint(device->get_block_size())); + } + + omap_root_t rename_omap_root( + omap_type_t type, + Onode& onode, + Onode& d_onode) const { + return onode.get_root(type).get( + d_onode.get_metadata_hint(device->get_block_size())); } omaptree_get_value_ret omaptree_get_value(