In replicated pools, all replicas have role 0, so n_roles is set to 1
as long as at least one healthy copy exists. Comparing
n_roles < pg.pg_cursize was therefore always true for multi-replica
pools (e.g. 1 < 3 or 1 < 2), incorrectly marking healthy objects as
OBJ_DEGRADED and shadowing the OBJ_MISPLACED check below.
Conversely, directly using n_copies is also insufficient because
n_copies includes corrupted copies (n_corrupted). If a replica is
corrupted, n_copies remains equal to pg_cursize, preventing the object
from being marked as OBJ_DEGRADED and leaving it unrepaired.
Fix this by using (n_copies - n_corrupted) for replicated pools to count
only healthy copies, ensuring accurate degradation detection and
recovery.