]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/os/seastore/journal: avoid capturing destructured labels
authorSamuel Just <sjust@redhat.com>
Mon, 18 May 2020 18:06:00 +0000 (11:06 -0700)
committerSamuel Just <sjust@redhat.com>
Tue, 19 May 2020 16:15:53 +0000 (09:15 -0700)
clang at least doesn't allow those labels to be captured.

Signed-off-by: Samuel Just <sjust@redhat.com>
src/crimson/os/seastore/journal.cc

index 1ea7fa8ddf827cfb82dac28ffdca3eaf324f45a0..334de68812207b6d0f4f1b652002887708834735 100644 (file)
@@ -351,19 +351,16 @@ Journal::replay_segment(
 Journal::replay_ret Journal::replay(delta_handler_t &&delta_handler)
 {
   return seastar::do_with(
-    std::make_pair(std::move(delta_handler), std::vector<paddr_t>()),
-    [this](auto &&item) mutable -> replay_ret {
-      auto &[handler, segments] = item;
-      return find_replay_segments(
-      ).safe_then([this, &handler, &segments](auto osegments) {
-       logger().debug("replay: found {} segments", segments.size());
-       segments.swap(osegments);
-       return crimson::do_for_each(
-         segments,
-         [this, &handler](auto i) {
-           return replay_segment(i, handler);
-         });
-      });
+    std::move(delta_handler), std::vector<paddr_t>(),
+    [this](auto&& handler, auto&& segments) mutable -> replay_ret {
+      return find_replay_segments().safe_then(
+        [this, &handler, &segments](auto replay_segs) {
+          logger().debug("replay: found {} segments", replay_segs.size());
+          segments = std::move(replay_segs);
+          return crimson::do_for_each(segments, [this, &handler](auto i) {
+            return replay_segment(i, handler);
+          });
+        });
     });
 }