Skip to content

Commit 5bcccab

Browse files
committed
crimson/os/seastore: introduce rename_omap_root() with src and dest onodes
Signed-off-by: Yingxin Cheng <[email protected]>
1 parent ef2b82a commit 5bcccab

File tree

3 files changed

+15
-7
lines changed

3 files changed

+15
-7
lines changed

src/crimson/os/seastore/onode.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -105,9 +105,8 @@ class Onode : public boost::intrusive_ref_counter<
105105
laddr_t get_data_hint() const {
106106
return get_hint();
107107
}
108-
omap_root_t get_root(omap_type_t type, extent_len_t block_size) const {
109-
return get_layout().get_root(type).get(
110-
get_metadata_hint(block_size));
108+
const omap_root_le_t& get_root(omap_type_t type) const {
109+
return get_layout().get_root(type);
111110
}
112111
friend std::ostream& operator<<(std::ostream &out, const Onode &rhs);
113112
};

src/crimson/os/seastore/seastore.cc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1914,9 +1914,9 @@ SeaStore::Shard::_rename(
19141914
{
19151915
auto olayout = onode->get_layout();
19161916
uint32_t size = olayout.size;
1917-
auto omap_root = get_omap_root(omap_type_t::OMAP, *onode);
1918-
auto xattr_root = get_omap_root(omap_type_t::XATTR, *onode);
1919-
auto log_root = get_omap_root(omap_type_t::LOG, *onode);
1917+
auto omap_root = rename_omap_root(omap_type_t::OMAP, *onode, *d_onode);
1918+
auto xattr_root = rename_omap_root(omap_type_t::XATTR, *onode, *d_onode);
1919+
auto log_root = rename_omap_root(omap_type_t::LOG, *onode, *d_onode);
19201920
auto object_data = olayout.object_data.get();
19211921
auto oi_bl = ceph::bufferlist::static_from_mem(
19221922
&olayout.oi[0],

src/crimson/os/seastore/seastore.h

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -467,7 +467,16 @@ class SeaStore final : public FuturizedStore {
467467
*/
468468

469469
omap_root_t get_omap_root(omap_type_t type, Onode& onode) const {
470-
return onode.get_root(type, device->get_block_size());
470+
return onode.get_root(type).get(
471+
onode.get_metadata_hint(device->get_block_size()));
472+
}
473+
474+
omap_root_t rename_omap_root(
475+
omap_type_t type,
476+
Onode& onode,
477+
Onode& d_onode) const {
478+
return onode.get_root(type).get(
479+
d_onode.get_metadata_hint(device->get_block_size()));
471480
}
472481

473482
omaptree_get_value_ret omaptree_get_value(

0 commit comments

Comments
 (0)