From: huangjun Date: Thu, 29 Dec 2016 01:13:46 +0000 (+0800) Subject: osd/PrimaryLogPG: optimize pick_newest_available X-Git-Tag: v12.0.0~248^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=891c0992c5ccdca9c988ea14a30534cbcb7c591e;p=ceph.git 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 --- 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());