From: Kefu Chai Date: Tue, 1 Mar 2022 16:08:48 +0000 (+0800) Subject: crimson/os/seastore: use iter_cend() X-Git-Tag: v18.0.0~1321^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=c1039df60206cb7791a53d5ee65b1564ba9552ff;p=ceph.git crimson/os/seastore: use iter_cend() to avoid the pain of fixing the FTBFS with C++20 like /var/ssd/ceph/src/crimson/os/seastore/omap_manager/btree/omap_btree_node_impl.cc:141:19: error: use of overloaded operator '!=' is ambiguous (with operand types 'crimson::os::seastore::omap_manager::StringKVInnerN$ assert(child_pt != iter_end()); ~~~~~~~~ ^ ~~~~~~~~~~ /usr/include/assert.h:93:27: note: expanded from macro 'assert' (static_cast (expr) \ ^~~~ /var/ssd/ceph/src/crimson/os/seastore/omap_manager/btree/string_kv_node_layout.h:380:10: note: candidate function bool operator==(const iter_t &rhs) const { ^ /var/ssd/ceph/src/crimson/os/seastore/omap_manager/btree/string_kv_node_layout.h:380:10: note: candidate function (with reversed parameter order) also, to be explicit is advisable. Signed-off-by: Kefu Chai --- diff --git a/src/crimson/os/seastore/lba_manager/btree/lba_btree.cc b/src/crimson/os/seastore/lba_manager/btree/lba_btree.cc index 2c5e50c78860..23826ff989fe 100644 --- a/src/crimson/os/seastore/lba_manager/btree/lba_btree.cc +++ b/src/crimson/os/seastore/lba_manager/btree/lba_btree.cc @@ -621,7 +621,7 @@ LBABtree::handle_split_ret LBABtree::handle_split( nroot->set_meta(meta); nroot->pin.set_range(meta); nroot->journal_insert( - nroot->begin(), + std::cbegin(*nroot), L_ADDR_MIN, root.get_location(), nullptr); diff --git a/src/crimson/os/seastore/omap_manager/btree/omap_btree_node_impl.cc b/src/crimson/os/seastore/omap_manager/btree/omap_btree_node_impl.cc index bf782fdb1f30..98f12d100bcd 100644 --- a/src/crimson/os/seastore/omap_manager/btree/omap_btree_node_impl.cc +++ b/src/crimson/os/seastore/omap_manager/btree/omap_btree_node_impl.cc @@ -122,7 +122,7 @@ OMapInnerNode::get_value( { logger().debug("OMapInnerNode: {} key = {}", __func__, key); auto child_pt = get_containing_child(key); - assert(child_pt != iter_end()); + assert(child_pt != iter_cend()); auto laddr = child_pt->get_val(); return omap_load_extent(oc, laddr, get_meta().depth - 1).si_then( [oc, &key] (auto extent) { @@ -138,7 +138,7 @@ OMapInnerNode::insert( { logger().debug("OMapInnerNode: {} {}->{}", __func__, key, value); auto child_pt = get_containing_child(key); - assert(child_pt != iter_end()); + assert(child_pt != iter_cend()); auto laddr = child_pt->get_val(); return omap_load_extent(oc, laddr, get_meta().depth - 1).si_then( [oc, &key, &value] (auto extent) { @@ -161,7 +161,7 @@ OMapInnerNode::rm_key(omap_context_t oc, const std::string &key) { logger().debug("OMapInnerNode: {}", __func__); auto child_pt = get_containing_child(key); - assert(child_pt != iter_end()); + assert(child_pt != iter_cend()); auto laddr = child_pt->get_val(); return omap_load_extent(oc, laddr, get_meta().depth - 1).si_then( [this, oc, &key, child_pt] (auto extent) { @@ -321,7 +321,7 @@ OMapInnerNode::merge_entry( auto mut_iter = mut->iter_idx(iter->get_index()); return mut->merge_entry(oc, mut_iter, entry); } - auto is_left = (iter + 1) == iter_end(); + auto is_left = (iter + 1) == iter_cend(); auto donor_iter = is_left ? iter - 1 : iter + 1; return omap_load_extent(oc, donor_iter->get_val(), get_meta().depth - 1) .si_then([=] (auto &&donor) mutable {