From 891c0992c5ccdca9c988ea14a30534cbcb7c591e Mon Sep 17 00:00:00 2001 From: huangjun Date: Thu, 29 Dec 2016 09:13:46 +0800 Subject: [PATCH] osd/PrimaryLogPG: optimize pick_newest_available we can get pg_missing_item from is_missing(), no need to find it again. Signed-off-by: huangjun --- src/osd/PrimaryLogPG.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/osd/PrimaryLogPG.cc b/src/osd/PrimaryLogPG.cc index 0f7c1b70035c..abea4441d91c 100644 --- a/src/osd/PrimaryLogPG.cc +++ b/src/osd/PrimaryLogPG.cc @@ -9803,9 +9803,10 @@ void PrimaryLogPG::sub_op_remove(OpRequestRef op) eversion_t PrimaryLogPG::pick_newest_available(const hobject_t& oid) { eversion_t v; - - assert(pg_log.get_missing().is_missing(oid)); - v = pg_log.get_missing().get_items().find(oid)->second.have; + pg_missing_item pmi; + bool is_missing = pg_log.get_missing().is_missing(oid, &pmi); + assert(is_missing); + v = pmi.have; dout(10) << "pick_newest_available " << oid << " " << v << " on osd." << osd->whoami << " (local)" << dendl; assert(!actingbackfill.empty()); -- 2.47.3