From: Yingxin Cheng Date: Wed, 26 May 2021 04:45:27 +0000 (+0800) Subject: crimson/onode-staged-tree: try merge peer if node has one value X-Git-Tag: v17.1.0~1674^2~25 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=9e8bb747ca11dd9b230158c02bd4f7830becb880;p=ceph.git crimson/onode-staged-tree: try merge peer if node has one value Signed-off-by: Yingxin Cheng --- 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 66fb3731279f..9fcd950107ea 100644 --- a/src/crimson/os/seastore/onode_manager/staged-fltree/node.cc +++ b/src/crimson/os/seastore/onode_manager/staged-fltree/node.cc @@ -517,7 +517,9 @@ Node::try_merge_adjacent( impl->validate_non_empty(); assert(!is_root()); if constexpr (!FORCE_MERGE) { - if (!impl->is_size_underflow()) { + if (!impl->is_size_underflow() && + !impl->has_single_value()) { + // skip merge if (update_parent_index) { return fix_parent_index(c, std::move(this_ref), false); } else {