]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/os/seastore: do not capture non-variables
authorKefu Chai <kchai@redhat.com>
Fri, 7 May 2021 04:59:36 +0000 (12:59 +0800)
committerKefu Chai <kchai@redhat.com>
Fri, 7 May 2021 05:55:51 +0000 (13:55 +0800)
merge_stage and merge_size are structured bindings, they are not
variables. so cannot be captured without defining variables in
capture list.

Signed-off-by: Kefu Chai <kchai@redhat.com>
src/crimson/os/seastore/onode_manager/staged-fltree/node.cc

index b0fa5304bc3a304917beefdb19edb33fa09cef97..401ceccee4c5d5dd3c5787c96d44bade2657ad53 100644 (file)
@@ -574,8 +574,10 @@ Node::try_merge_adjacent(
         // fresh extent, thus no need to generate delta.
         auto left_addr = left_for_merge->impl->laddr();
         return left_for_merge->rebuild_extent(c
-        ).safe_then([c, merge_stage, merge_size, update_index_after_merge,
+        ).safe_then([c, update_index_after_merge,
                      left_addr,
+                     merge_stage = merge_stage,
+                     merge_size = merge_size,
                      left_for_merge = std::move(left_for_merge),
                      right_for_merge = std::move(right_for_merge)] (auto left_mut) mutable {
           if (left_for_merge->impl->node_type() == node_type_t::LEAF) {