return seastar::now();
}
+ interruptible_future<> handle_push(
+ Ref<MOSDPGPush> m);
+
private:
void commit_txn_send_replies(
ceph::os::Transaction&& txn,
const std::map<std::string, ceph::bufferlist, std::less<>>& raw_attrs,
RecoveryOp &op) final;
- interruptible_future<> handle_push(
- Ref<MOSDPGPush> m);
interruptible_future<> handle_push_reply(
Ref<MOSDPGPushReply> m);
};
reqid, version, user_version, return_code, op_returns));
}
+void PG::send_message_osd_cluster(int osd, MOSDPGPush* msg, epoch_t from_epoch)
+{
+ logger().debug("{}: MOSDPGPush from_epoch {} to osd.{}",
+ __func__, from_epoch, osd);
+ if (whoami_shard().osd == osd) {
+ static_cast<ECRecoveryBackend&>(*recovery_backend).handle_push(msg);
+ } else {
+ std::vector wrapped_msg {
+ std::make_pair(osd, static_cast<Message*>(msg))
+ };
+ send_message_osd_cluster(wrapped_msg, from_epoch);
+ }
+}
+
}
});
});
}
+ void send_message_osd_cluster(
+ int osd, MOSDPGPush* msg, epoch_t from_epoch) override;
std::ostream& gen_dbg_prefix(std::ostream& out) const override final {
return gen_prefix(out);
}