};
}
+void PG::update_stats(const pg_stat_t &stat) {
+ peering_state.update_stats(
+ [&stat] (auto& history, auto& stats) {
+ stats = stat;
+ return false;
+ }
+ );
+}
+
PG::interruptible_future<> PG::handle_rep_op(Ref<MOSDRepOp> req)
{
if (__builtin_expect(stopping, false)) {
auto p = req->logbl.cbegin();
std::vector<pg_log_entry_t> log_entries;
decode(log_entries, p);
+ update_stats(req->pg_stats);
log_operation(std::move(log_entries),
req->pg_trim_to,
req->version,
with_obc_func_t&& f);
interruptible_future<> handle_rep_op(Ref<MOSDRepOp> m);
+ void update_stats(const pg_stat_t &stat);
void log_operation(
std::vector<pg_log_entry_t>&& logv,
const eversion_t &trim_to,
encode(log_entries, m->logbl);
m->pg_trim_to = osd_op_p.pg_trim_to;
m->min_last_complete_ondisk = osd_op_p.min_last_complete_ondisk;
+ m->pg_stats = pg.get_info().stats;
// TODO: set more stuff. e.g., pg_states
sends->emplace_back(
shard_services.send_to_osd(