From ddcf1a9a338b55e3348be9d8e5fb468c9000ca42 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Tue, 10 May 2016 10:09:56 -0400 Subject: [PATCH] osd/OSDMap: minor optimization of remove_down_temps Signed-off-by: Sage Weil --- src/osd/OSDMap.cc | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/osd/OSDMap.cc b/src/osd/OSDMap.cc index 124a1ab2364a4..b64d4d79963cf 100644 --- a/src/osd/OSDMap.cc +++ b/src/osd/OSDMap.cc @@ -1235,15 +1235,20 @@ void OSDMap::remove_down_temps(CephContext *cct, for (map >::iterator p = tmpmap.pg_temp->begin(); p != tmpmap.pg_temp->end(); ++p) { + // all osds down? unsigned num_up = 0; - for (vector::iterator i = p->second.begin(); - i != p->second.end(); - ++i) { - if (!tmpmap.is_down(*i)) + for (auto o : p->second) { + if (!tmpmap.is_down(o)) { ++num_up; + break; + } } - if (num_up == 0) + if (num_up == 0) { + ldout(cct, 10) << __func__ << " removing pg_temp " << p->first + << " with all down osds" << p->second << dendl; pending_inc->new_pg_temp[p->first].clear(); + continue; + } } for (map::iterator p = tmpmap.primary_temp->begin(); p != tmpmap.primary_temp->end(); -- 2.39.5