]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: fix buildability after the RecoveryBackend shuffling
authorRadoslaw Zarzynski <rzarzyns@redhat.com>
Fri, 18 Apr 2025 08:42:18 +0000 (08:42 +0000)
committerRadoslaw Zarzynski <rzarzyns@redhat.com>
Wed, 13 Aug 2025 16:34:44 +0000 (16:34 +0000)
Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
src/osd/ECBackend.cc
src/osd/ECCommon.cc
src/osd/ECCommon.h

index c3ef027bce098da7990f05669b576f59549c7129..71e7ab256438f7f3503d3cbd0939d7ea610992fa 100644 (file)
@@ -63,7 +63,7 @@ static ostream &_prefix(std::ostream *_dout, ECBackend::RecoveryBackend *pgb) {
   return pgb->get_parent()->gen_dbg_prefix(*_dout);
 }
 
-struct ECRecoveryHandle : public PGBackend::RecoveryHandle {
+struct ECCommon::RecoveryBackend::ECRecoveryHandle : public PGBackend::RecoveryHandle {
   list<ECBackend::RecoveryBackend::RecoveryOp> ops;
 };
 
@@ -103,7 +103,8 @@ ECBackend::ECBackend(
 }
 
 PGBackend::RecoveryHandle *ECBackend::open_recovery_op() {
-  return recovery_backend.open_recovery_op();
+  return static_cast<PGBackend::RecoveryHandle*>(
+    recovery_backend.open_recovery_op());
 }
 
 ECBackend::RecoveryBackend::RecoveryBackend(
@@ -122,7 +123,7 @@ ECBackend::RecoveryBackend::RecoveryBackend(
     parent(parent),
     ecbackend(ecbackend) {}
 
-PGBackend::RecoveryHandle *ECBackend::RecoveryBackend::open_recovery_op() {
+ECCommon::RecoveryBackend::ECRecoveryHandle *ECBackend::RecoveryBackend::open_recovery_op() {
   return new ECRecoveryHandle;
 }
 
@@ -755,14 +756,14 @@ void ECBackend::run_recovery_op(
   PGBackend::RecoveryHandle *_h,
   int priority) {
   ceph_assert(_h);
-  ECRecoveryHandle &h = static_cast<ECRecoveryHandle&>(*_h);
+  auto &h = static_cast<ECCommon::RecoveryBackend::ECRecoveryHandle&>(*_h);
   recovery_backend.run_recovery_op(h, priority);
   switcher->send_recovery_deletes(priority, h.deletes);
   delete _h;
 }
 
 void ECBackend::RecoveryBackend::run_recovery_op(
-  ECRecoveryHandle &h,
+  ECCommon::RecoveryBackend::ECRecoveryHandle &h,
   int priority) {
   RecoveryMessages m;
   for (list<RecoveryOp>::iterator i = h.ops.begin();
@@ -782,7 +783,8 @@ int ECBackend::recover_object(
   ObjectContextRef head,
   ObjectContextRef obc,
   PGBackend::RecoveryHandle *_h) {
-  return recovery_backend.recover_object(hoid, v, head, obc, _h);
+  auto *h = static_cast<ECCommon::RecoveryBackend::ECRecoveryHandle*>(_h);
+  return recovery_backend.recover_object(hoid, v, head, obc, h);
 }
 
 int ECBackend::RecoveryBackend::recover_object(
@@ -790,8 +792,7 @@ int ECBackend::RecoveryBackend::recover_object(
   eversion_t v,
   ObjectContextRef head,
   ObjectContextRef obc,
-  PGBackend::RecoveryHandle *_h) {
-  ECRecoveryHandle *h = static_cast<ECRecoveryHandle*>(_h);
+  ECCommon::RecoveryBackend::ECRecoveryHandle *h) {
   h->ops.push_back(RecoveryOp());
   h->ops.back().v = v;
   h->ops.back().hoid = hoid;
index a0451779ca2c53cd53d3a5a323cb8d39fca9cba0..777c24c60101b496ebaf91b89a3bc9b21ecc3e4e 100644 (file)
@@ -62,6 +62,11 @@ static ostream &_prefix(std::ostream *_dout,
   return read_pipeline->get_parent()->gen_dbg_prefix(*_dout);
 }
 
+static ostream &_prefix(std::ostream *_dout,
+                        ECCommon::RecoveryBackend *pgb) {
+  return pgb->get_parent()->gen_dbg_prefix(*_dout);
+}
+
 static ostream &_prefix(std::ostream *_dout,
                         struct ClientReadCompleter const *read_completer
   );
@@ -1024,4 +1029,4 @@ void ECCommon::RMWPipeline::on_change2() {
 void ECCommon::RMWPipeline::call_write_ordered(std::function<void(void)> &&cb) {
   next_write_all_shards = true;
   extent_cache.add_on_write(std::move(cb));
-}
\ No newline at end of file
+}
index 9cf1cada3d20339c113290e02be6363873aa1243..c4726bff42e0974ab281f565b3cce206043def82 100644 (file)
@@ -47,6 +47,7 @@ typedef crimson::osd::ObjectContextRef ObjectContextRef;
 #include "common/dout.h"
 
 //forward declaration
+struct ECBackend;
 struct ECSubWrite;
 struct PGLog;
 struct RecoveryMessages;
@@ -775,16 +776,17 @@ struct ECCommon {
         std::map<int, MOSDPGPushReply*> replies) = 0;
     void dispatch_recovery_messages(RecoveryMessages &m, int priority);
 
-    PGBackend::RecoveryHandle *open_recovery_op();
+    struct ECRecoveryHandle;
+    ECRecoveryHandle *open_recovery_op();
     void run_recovery_op(
-        struct ECRecoveryHandle &h,
+        ECRecoveryHandle &h,
         int priority);
     int recover_object(
         const hobject_t &hoid,
         eversion_t v,
         ObjectContextRef head,
         ObjectContextRef obc,
-        PGBackend::RecoveryHandle *h);
+        ECRecoveryHandle *h);
     void continue_recovery_op(
         RecoveryBackend::RecoveryOp &op,
         RecoveryMessages *m);