From 7a826eb86c423e895345557632091a934f7c7d7e Mon Sep 17 00:00:00 2001 From: Samuel Just Date: Thu, 19 Sep 2024 19:39:08 -0700 Subject: [PATCH] crimson: PG::submit_error_log returns eversion_t rather than optional It seems like the motivation here was to allow do_osd_ops_execute to communicate that it didn't submit an error log by making maybe_submit_error_log a std::optional. However, submit_error_log itself always returns a version. Fix submit_error_log and compensate in do_osd_ops_execute. Signed-off-by: Samuel Just --- src/crimson/osd/pg.cc | 10 +++++++--- src/crimson/osd/pg.h | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/crimson/osd/pg.cc b/src/crimson/osd/pg.cc index 8ab4e4e899b..26d1fa883bb 100644 --- a/src/crimson/osd/pg.cc +++ b/src/crimson/osd/pg.cc @@ -1122,7 +1122,11 @@ PG::do_osd_ops_execute( if constexpr (!std::is_same_v) { if(op_info.may_write()) { maybe_submit_error_log = - submit_error_log(m, op_info, obc, e, rep_tid); + submit_error_log( + m, op_info, obc, e, rep_tid + ).then_interruptible([](auto &&e) { + return std::make_optional(std::move(e)); + }); } } return maybe_submit_error_log.then_interruptible( @@ -1175,7 +1179,7 @@ PG::interruptible_future<> PG::complete_error_log(const ceph_tid_t& rep_tid, return result; } -PG::interruptible_future> PG::submit_error_log( +PG::interruptible_future PG::submit_error_log( Ref m, const OpInfo &op_info, ObjectContextRef obc, @@ -1241,7 +1245,7 @@ PG::interruptible_future> PG::submit_error_log( get_collection_ref(), std::move(t) ).then([this] { peering_state.update_trim_to(); - return seastar::make_ready_future>(projected_last_update); + return seastar::make_ready_future(projected_last_update); }); }); }); diff --git a/src/crimson/osd/pg.h b/src/crimson/osd/pg.h index d8bbc56abcc..5bd5c3aeff8 100644 --- a/src/crimson/osd/pg.h +++ b/src/crimson/osd/pg.h @@ -621,7 +621,7 @@ public: void dump_primary(Formatter*); interruptible_future<> complete_error_log(const ceph_tid_t& rep_tid, const eversion_t& version); - interruptible_future> submit_error_log( + interruptible_future submit_error_log( Ref m, const OpInfo &op_info, ObjectContextRef obc, -- 2.39.5