get_parent()->on_peer_recover(
*i,
op.hoid,
- op.recovery_info,
- object_stat_sum_t());
+ op.recovery_info);
}
}
object_stat_sum_t stat;
virtual void on_peer_recover(
pg_shard_t peer,
const hobject_t &oid,
- const ObjectRecoveryInfo &recovery_info,
- const object_stat_sum_t &stat
+ const ObjectRecoveryInfo &recovery_info
) = 0;
virtual void begin_peer_recover(
void PrimaryLogPG::on_peer_recover(
pg_shard_t peer,
const hobject_t &soid,
- const ObjectRecoveryInfo &recovery_info,
- const object_stat_sum_t &stat)
+ const ObjectRecoveryInfo &recovery_info)
{
- info.stats.stats.sum.add(stat);
publish_stats_to_osd();
// done!
peer_missing[peer].got(soid, recovery_info.version);
void on_peer_recover(
pg_shard_t peer,
const hobject_t &oid,
- const ObjectRecoveryInfo &recovery_info,
- const object_stat_sum_t &stat
+ const ObjectRecoveryInfo &recovery_info
) override;
void begin_peer_recover(
pg_shard_t peer,
} else {
// done!
get_parent()->on_peer_recover(
- peer, soid, pi->recovery_info,
- pi->stat);
-
- object_stat_sum_t stat;
- stat.num_bytes_recovered = pi->recovery_info.size;
- stat.num_keys_recovered = reply->omap_entries.size();
- stat.num_objects_recovered = 1;
+ peer, soid, pi->recovery_info);
get_parent()->release_locks(pi->lock_manager);
+ object_stat_sum_t stat = pi->stat;
pushing[soid].erase(peer);
pi = NULL;
-
if (pushing[soid].empty()) {
get_parent()->on_global_recover(soid, stat);
pushing.erase(soid);