From: Matan Breizman Date: Thu, 19 Oct 2023 12:05:40 +0000 (+0000) Subject: crimson/osd/pg: do_osd_ops failure_func refactor X-Git-Tag: v19.0.0~204^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=22cd766ca905dd66c8502c457c8262538c88a085;p=ceph.git crimson/osd/pg: do_osd_ops failure_func refactor Signed-off-by: Matan Breizman --- diff --git a/src/crimson/osd/pg.cc b/src/crimson/osd/pg.cc index 3f9a9e0f7a2f..892201024a66 100644 --- a/src/crimson/osd/pg.cc +++ b/src/crimson/osd/pg.cc @@ -1046,11 +1046,11 @@ PG::do_osd_ops( // TODO: https://tracker.ceph.com/issues/61651 fut = submit_error_log(m, op_info, obc, e, rep_tid, version); } - return fut.then([m, e, epoch, &op_info, rep_tid, &version, last_complete, this] { + return fut.then([m, e, epoch, &op_info, rep_tid, &version, last_complete, this] { auto log_reply_fut = [m, e, this] { return log_reply(m, e); }; - + auto fut2 = seastar::now(); if (!peering_state.pg_has_reset_since(epoch) && op_info.may_write()) { auto it = log_entry_update_waiting_on.find(rep_tid); ceph_assert(it != log_entry_update_waiting_on.end()); @@ -1064,16 +1064,18 @@ PG::do_osd_ops( peering_state.complete_write(version, last_complete); } } else { - return it->second.all_committed.get_shared_future() - .then([this, &version, last_complete, log_reply_fut = std::move(log_reply_fut)] { + fut2 = it->second.all_committed.get_shared_future().then( + [this, &version, last_complete] { if (version != eversion_t()) { peering_state.complete_write(version, last_complete); } - return log_reply_fut(); + return seastar::now(); }); } } - return log_reply_fut(); + return fut2.then([this, log_reply_fut = std::move(log_reply_fut)] { + return log_reply_fut(); + }); }); }); });