From 6e791093739a9684a6204b07aa9e2d9070ba7e20 Mon Sep 17 00:00:00 2001 From: Samuel Just Date: Mon, 18 May 2020 11:06:00 -0700 Subject: [PATCH] crimson/os/seastore/journal: avoid capturing destructured labels clang at least doesn't allow those labels to be captured. Signed-off-by: Samuel Just --- src/crimson/os/seastore/journal.cc | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/src/crimson/os/seastore/journal.cc b/src/crimson/os/seastore/journal.cc index 1ea7fa8ddf827..334de68812207 100644 --- a/src/crimson/os/seastore/journal.cc +++ b/src/crimson/os/seastore/journal.cc @@ -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()), - [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(), + [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); + }); + }); }); } -- 2.39.5