Fix flushing of unclean objects

This was preventing OSD failover when there were some unclean objects.
Bug was introduced in aa436027c8
non-odp-rdma
Vitaliy Filippov 2022-01-23 00:45:09 +03:00
parent 3abcac058f
commit 31b9c683ee
1 changed files with 2 additions and 2 deletions

View File

@ -27,9 +27,9 @@ void osd_t::handle_peers()
misplaced_objects += p.second.misplaced_objects.size();
// FIXME: degraded objects may currently include misplaced, too! Report them separately?
degraded_objects += p.second.degraded_objects.size();
if ((p.second.state & (PG_ACTIVE | PG_HAS_UNCLEAN)) == (PG_ACTIVE | PG_HAS_UNCLEAN))
if (p.second.state & PG_HAS_UNCLEAN)
peering_state = peering_state | OSD_FLUSHING_PGS;
else if (p.second.state & PG_ACTIVE)
else if (p.second.state & PG_HAS_DEGRADED)
peering_state = peering_state | OSD_RECOVERING;
}
else