]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/os/seastore: capture variables explicitly
authorKefu Chai <kchai@redhat.com>
Mon, 5 Jul 2021 14:53:53 +0000 (22:53 +0800)
committerKefu Chai <kchai@redhat.com>
Mon, 5 Jul 2021 15:26:13 +0000 (23:26 +0800)
less error prune this way.

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

index 63f0ef2cdec5a5d77dacb25193b3644b94c8a307..3614fbc73ca5cb5c788cb3c3b4c1f4228150150d 100644 (file)
@@ -648,18 +648,18 @@ Journal::scan_extents_ret Journal::scan_extents(
   extent_len_t bytes_to_read)
 {
   auto ret = std::make_unique<scan_extents_ret_bare>();
-  auto &retref = *ret;
+  auto* extents = ret.get();
   return read_segment_header(cursor.get_offset().segment
   ).handle_error(
     scan_extents_ertr::pass_further{},
     crimson::ct_error::assert_all{
       "Invalid error in Journal::scan_extents"
     }
-  ).safe_then([&, bytes_to_read](auto segment_header) {
+  ).safe_then([bytes_to_read, extents, &cursor, this](auto segment_header) {
     auto segment_nonce = segment_header.segment_nonce;
     return seastar::do_with(
       found_record_handler_t(
-       [&, bytes_to_read](
+       [extents, this](
          paddr_t base,
          const record_header_t &header,
          const bufferlist &mdbuf) mutable {
@@ -677,7 +677,7 @@ Journal::scan_extents_ret Journal::scan_extents(
 
          paddr_t extent_offset = base.add_offset(header.mdlength);
          for (const auto &i : *infos) {
-           retref.emplace_back(extent_offset, i);
+           extents->emplace_back(extent_offset, i);
            extent_offset.offset += i.len;
          }
          return scan_extents_ertr::now();