From: Radoslaw Zarzynski Date: Tue, 3 Aug 2021 12:38:14 +0000 (+0000) Subject: crimson/osd: clean the inclusion of osd_operation_sequencer.h. X-Git-Tag: v17.1.0~865^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=f84a2d71a4c2418656c582f35e5639f6ceb9967d;p=ceph.git crimson/osd: clean the inclusion of osd_operation_sequencer.h. The plan is to make it specific `ClientRequest` as we need to introduce some assistance at the operation's side.. Signed-off-by: Radoslaw Zarzynski --- diff --git a/src/crimson/osd/osd_connection_priv.h b/src/crimson/osd/osd_connection_priv.h index 1577565edd2e..b70c2e1259d9 100644 --- a/src/crimson/osd/osd_connection_priv.h +++ b/src/crimson/osd/osd_connection_priv.h @@ -5,6 +5,7 @@ #include "crimson/net/Connection.h" #include "crimson/osd/osd_operation.h" +#include "crimson/osd/osd_operation_sequencer.h" #include "crimson/osd/osd_operations/client_request.h" #include "crimson/osd/osd_operations/peering_event.h" #include "crimson/osd/osd_operations/replicated_request.h" diff --git a/src/crimson/osd/osd_operation.h b/src/crimson/osd/osd_operation.h index f099a06e7df7..60039850ef7c 100644 --- a/src/crimson/osd/osd_operation.h +++ b/src/crimson/osd/osd_operation.h @@ -3,9 +3,10 @@ #pragma once -#include "crimson/osd/osd_operation_sequencer.h" +#include "crimson/common/operation.h" #include "crimson/osd/pg_interval_interrupt_condition.h" #include "crimson/osd/scheduler/scheduler.h" +#include "osd/osd_types.h" namespace crimson::osd { diff --git a/src/crimson/osd/osd_operation_sequencer.h b/src/crimson/osd/osd_operation_sequencer.h index 90c8a963b094..ee0760a300ad 100644 --- a/src/crimson/osd/osd_operation_sequencer.h +++ b/src/crimson/osd/osd_operation_sequencer.h @@ -7,7 +7,6 @@ #include #include #include "crimson/common/operation.h" -#include "osd/osd_types.h" namespace crimson::osd { diff --git a/src/crimson/osd/osd_operations/client_request.cc b/src/crimson/osd/osd_operations/client_request.cc index 2de452cb5161..68d64ab5ce1c 100644 --- a/src/crimson/osd/osd_operations/client_request.cc +++ b/src/crimson/osd/osd_operations/client_request.cc @@ -10,6 +10,7 @@ #include "crimson/osd/pg.h" #include "crimson/osd/osd.h" #include "common/Formatter.h" +#include "crimson/osd/osd_operation_sequencer.h" #include "crimson/osd/osd_operations/client_request.h" #include "crimson/osd/osd_connection_priv.h" @@ -68,6 +69,16 @@ void ClientRequest::may_set_prev_op() } } +template +ClientRequest::interruptible_future<> ClientRequest::with_sequencer(FuncT&& func) +{ + may_set_prev_op(); + return sequencer.start_op(*this, handle, std::forward(func)) + .then_interruptible([this] { + sequencer.finish_op(*this); + }); +} + seastar::future<> ClientRequest::start() { logger().debug("{}: start", *this); diff --git a/src/crimson/osd/osd_operations/client_request.h b/src/crimson/osd/osd_operations/client_request.h index 05a75515c4df..3f14acd1cd7a 100644 --- a/src/crimson/osd/osd_operations/client_request.h +++ b/src/crimson/osd/osd_operations/client_request.h @@ -64,13 +64,7 @@ public: private: template - interruptible_future<> with_sequencer(FuncT&& func) { - may_set_prev_op(); - return sequencer.start_op(*this, handle, std::forward(func)) - .then_interruptible([this] { - sequencer.finish_op(*this); - }); - } + interruptible_future<> with_sequencer(FuncT&& func); interruptible_future<> do_process( Ref& pg, crimson::osd::ObjectContextRef obc); @@ -85,7 +79,7 @@ private: ConnectionPipeline &cp(); PGPipeline &pp(PG &pg); - OpSequencer& sequencer; + class OpSequencer& sequencer; std::optional prev_op_id; template