]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/crimson/osd/osd_operations/internal_client_request.h
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / crimson / osd / osd_operations / internal_client_request.h
index b468b3d15cf1f1443763ff9577116901c1f03ec3..ca78905ea96078a6ce0199e18478a4d9c38c3ffd 100644 (file)
@@ -6,11 +6,13 @@
 #include "crimson/common/type_helpers.h"
 #include "crimson/osd/osd_operation.h"
 #include "crimson/osd/osd_operations/client_request_common.h"
+#include "crimson/osd/osd_operations/common/pg_pipeline.h"
 #include "crimson/osd/pg.h"
+#include "crimson/osd/pg_activation_blocker.h"
 
 namespace crimson::osd {
 
-class InternalClientRequest : public OperationT<InternalClientRequest>,
+class InternalClientRequest : public PhasedOperationT<InternalClientRequest>,
                               private CommonClientRequest {
 public:
   explicit InternalClientRequest(Ref<PG> pg);
@@ -42,8 +44,25 @@ private:
   seastar::future<> do_process();
 
   Ref<PG> pg;
-  PipelineHandle handle;
   OpInfo op_info;
+  PipelineHandle handle;
+
+public:
+  PipelineHandle& get_handle() { return handle; }
+
+  std::tuple<
+    StartEvent,
+    CommonPGPipeline::WaitForActive::BlockingEvent,
+    PGActivationBlocker::BlockingEvent,
+    CommonPGPipeline::RecoverMissing::BlockingEvent,
+    CommonPGPipeline::GetOBC::BlockingEvent,
+    CommonPGPipeline::Process::BlockingEvent,
+    CompletionEvent
+  > tracking_events;
 };
 
 } // namespace crimson::osd
+
+#if FMT_VERSION >= 90000
+template <> struct fmt::formatter<crimson::osd::InternalClientRequest> : fmt::ostream_formatter {};
+#endif