]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
crimson/osd: bring ECRecoveryBackend, phase 0
authorRadoslaw Zarzynski <rzarzyns@redhat.com>
Tue, 19 Mar 2024 16:49:06 +0000 (16:49 +0000)
committerRadoslaw Zarzynski <rzarzyns@redhat.com>
Tue, 24 Mar 2026 16:06:23 +0000 (16:06 +0000)
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
src/crimson/osd/CMakeLists.txt
src/crimson/osd/ec_recovery_backend.cc [new file with mode: 0644]
src/crimson/osd/ec_recovery_backend.h [new file with mode: 0644]

index 58deea7ab51e9ed846ff38a0fad363cb0097f4bb..c0ffa4053bcc3518a8dbdf7857e5bc80da90cf63 100644 (file)
@@ -1,6 +1,7 @@
 add_executable(crimson-osd
   backfill_state.cc
   ec_backend.cc
+  ec_recovery_backend.cc
   heartbeat.cc
   lsan_suppressions.cc
   main.cc
diff --git a/src/crimson/osd/ec_recovery_backend.cc b/src/crimson/osd/ec_recovery_backend.cc
new file mode 100644 (file)
index 0000000..7fa0173
--- /dev/null
@@ -0,0 +1,20 @@
+// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:nil -*-
+// vim: ts=8 sw=2 smarttab expandtab
+
+#include <fmt/format.h>
+#include <fmt/ostream.h>
+#include <seastar/core/future.hh>
+#include <seastar/core/do_with.hh>
+
+#include "crimson/osd/ec_recovery_backend.h"
+#include "crimson/osd/pg.h"
+#include "crimson/osd/pg_backend.h"
+#include "msg/Message.h"
+#include "osd/osd_types_fmt.h"
+
+namespace {
+  seastar::logger& logger() {
+    return crimson::get_logger(ceph_subsys_osd);
+  }
+}
+
diff --git a/src/crimson/osd/ec_recovery_backend.h b/src/crimson/osd/ec_recovery_backend.h
new file mode 100644 (file)
index 0000000..2abac2e
--- /dev/null
@@ -0,0 +1,49 @@
+// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*-
+// vim: ts=8 sw=2 smarttab
+
+#pragma once
+
+#include <seastar/core/future.hh>
+
+#include "crimson/common/type_helpers.h"
+#include "crimson/os/futurized_store.h"
+#include "crimson/os/futurized_collection.h"
+#include "crimson/osd/object_context.h"
+#include "crimson/osd/pg_interval_interrupt_condition.h"
+#include "crimson/osd/recovery_backend.h"
+#include "crimson/osd/shard_services.h"
+
+
+#include "messages/MOSDPGBackfill.h"
+#include "messages/MOSDPGBackfillRemove.h"
+#include "messages/MOSDPGScan.h"
+#include "osd/recovery_types.h"
+#include "osd/osd_types.h"
+
+namespace crimson::osd{
+  class PG;
+}
+
+class PGBackend;
+
+class ECRecoveryBackend : public RecoveryBackend {
+public:
+  ECRecoveryBackend(crimson::osd::PG& pg,
+                   crimson::osd::ShardServices& shard_services,
+                   crimson::os::CollectionRef coll,
+                   PGBackend* backend)
+    : RecoveryBackend(pg, shard_services, coll, backend)
+  {}
+
+  interruptible_future<> handle_recovery_op(
+    Ref<MOSDFastDispatchOp> m,
+    crimson::net::ConnectionXcoreRef conn) final;
+
+  interruptible_future<> recover_object(
+    const hobject_t& soid,
+    eversion_t need) final;
+
+  seastar::future<> on_stop() final {
+    return seastar::now();
+  }
+};