]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/osd: clean the inclusion of osd_operation_sequencer.h.
authorRadoslaw Zarzynski <rzarzyns@redhat.com>
Tue, 3 Aug 2021 12:38:14 +0000 (12:38 +0000)
committerRadoslaw Zarzynski <rzarzyns@redhat.com>
Wed, 1 Sep 2021 13:07:18 +0000 (13:07 +0000)
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 <rzarzyns@redhat.com>
src/crimson/osd/osd_connection_priv.h
src/crimson/osd/osd_operation.h
src/crimson/osd/osd_operation_sequencer.h
src/crimson/osd/osd_operations/client_request.cc
src/crimson/osd/osd_operations/client_request.h

index 1577565edd2ef5f5a19f29e458f2eec2b5b67a46..b70c2e1259d99a17fe38d417a91699ca494bedf3 100644 (file)
@@ -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"
index f099a06e7df7b6ffec537fdda31c523921cf14f2..60039850ef7ccddf2b2455fc79b193a849868cbb 100644 (file)
@@ -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 {
 
index 90c8a963b0942297e999eb5b3874d89df89b76d6..ee0760a300adbe6dea5b8ccc0803e0d730d18004 100644 (file)
@@ -7,7 +7,6 @@
 #include <fmt/format.h>
 #include <seastar/core/condition-variable.hh>
 #include "crimson/common/operation.h"
-#include "osd/osd_types.h"
 
 namespace crimson::osd {
 
index 2de452cb51612ce413beb54d4824830a14ff8c38..68d64ab5ce1c5681f58a14bc0a0591d7bd9aecf5 100644 (file)
@@ -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 <typename FuncT>
+ClientRequest::interruptible_future<> ClientRequest::with_sequencer(FuncT&& func)
+{
+  may_set_prev_op();
+  return sequencer.start_op(*this, handle, std::forward<FuncT>(func))
+  .then_interruptible([this] {
+    sequencer.finish_op(*this);
+  });
+}
+
 seastar::future<> ClientRequest::start()
 {
   logger().debug("{}: start", *this);
index 05a75515c4dfbe1ec057a93fdb856ba02110b501..3f14acd1cd7af1e1aa5b2fc45321ab0ae6a0b0c9 100644 (file)
@@ -64,13 +64,7 @@ public:
 
 private:
   template <typename FuncT>
-  interruptible_future<> with_sequencer(FuncT&& func) {
-    may_set_prev_op();
-    return sequencer.start_op(*this, handle, std::forward<FuncT>(func))
-    .then_interruptible([this] {
-      sequencer.finish_op(*this);
-    });
-  }
+  interruptible_future<> with_sequencer(FuncT&& func);
   interruptible_future<> do_process(
     Ref<PG>& pg,
     crimson::osd::ObjectContextRef obc);
@@ -85,7 +79,7 @@ private:
   ConnectionPipeline &cp();
   PGPipeline &pp(PG &pg);
 
-  OpSequencer& sequencer;
+  class OpSequencer& sequencer;
   std::optional<uint64_t> prev_op_id;
 
   template <typename Errorator>