return peering_state.get_peer_info(peer).last_backfill;
}
- decltype(auto) get_info() const {
- return peering_state.get_info();
+ decltype(auto) get_last_update() const {
+ return peering_state.get_info().last_update;
+ }
+
+ decltype(auto) get_log_tail() const {
+ return peering_state.get_info().log_tail;
}
decltype(auto) get_pg_log() const {
primary_bi.version >= pg().get_projected_last_update()) {
logger().info("{}: bi is current", __func__);
ceph_assert(primary_bi.version == pg().get_projected_last_update());
- } else if (primary_bi.version >= peering_state().get_info().log_tail) {
+ } else if (primary_bi.version >= peering_state().get_log_tail()) {
#if 0
if (peering_state().get_pg_log().get_log().empty() &&
pg().get_projected_log().empty()) {
// update our local interval to cope with recent changes
primary_bi.begin = backfill_state().last_backfill_started;
- if (primary_bi.version < peering_state().get_info().log_tail) {
+ if (primary_bi.version < peering_state().get_log_tail()) {
// it might be that the OSD is so flooded with modifying operations
// that backfill will be spinning here over and over. For the sake
// of performance and complexity we don't synchronize with entire PG.
BackfillState::PrimaryScanning::PrimaryScanning(my_context ctx)
: my_base(ctx)
{
- backfill_state().backfill_info.version = \
- peering_state().get_info().last_update;
+ backfill_state().backfill_info.version = peering_state().get_last_update();
backfill_listener().request_primary_scan(
backfill_state().backfill_info.begin);
}