From be2748c6d540891f2e1a62e7034cb44f7d04bf18 Mon Sep 17 00:00:00 2001 From: Samuel Just Date: Tue, 25 Feb 2014 16:47:21 -0800 Subject: [PATCH] OSDMap::_pg_to_up_acting_osds: use _acting_primary unless acting is empty If the temp set for whatever reason has only CRUSH_ITEM_NONE, we need primary to be -1. Signed-off-by: Samuel Just --- src/osd/OSDMap.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/osd/OSDMap.cc b/src/osd/OSDMap.cc index 253e10d48a524..7fe4d5248de96 100644 --- a/src/osd/OSDMap.cc +++ b/src/osd/OSDMap.cc @@ -1555,10 +1555,10 @@ void OSDMap::_pg_to_up_acting_osds(pg_t pg, vector *up, int *up_primary, _raw_to_up_osds(*pool, raw, &_up, &_up_primary); _apply_primary_affinity(pps, *pool, &_up, &_up_primary); _get_temp_osds(*pool, pg, &_acting, &_acting_primary); - if (_acting.empty()) + if (_acting.empty()) { _acting = _up; - if (_acting_primary == -1) _acting_primary = _up_primary; + } if (up) up->swap(_up); if (up_primary) -- 2.39.5