osd: EC optimizations rework for pg_temp
Bug fixes for how pg_temp is used with optimized EC pools. For these
pools pg_temp is re-ordered with non-primary shards last. The acting
set was undoing this re-ordering in PeeringState, but this is too
late and results code getting the shard id wrong. One consequence
iof this was an OSD refusing to create a PG because of an incorrect
shard id.
This commit moves the re-ordering earlier into OSDMap::_get_temp_osds,
some changes are then required to OSDMap::clean_temps.
Signed-off-by: Bill Scales <bill_scales@uk.ibm.com>
(cherry picked from commit
6c8b0297aaafeb0cff7350e52212140c85435afe)