]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd/PrimaryLogPG: optimize pick_newest_available 12695/head
authorhuangjun <hjwsm1989@gmail.com>
Thu, 29 Dec 2016 01:13:46 +0000 (09:13 +0800)
committerhuangjun <hjwsm1989@gmail.com>
Thu, 29 Dec 2016 01:13:46 +0000 (09:13 +0800)
  we can get pg_missing_item from is_missing(), no need to find it again.

Signed-off-by: huangjun <hjwsm1989@gmail.com>
src/osd/PrimaryLogPG.cc

index 0f7c1b70035c025071b85a9dee72e9505f76ae4c..abea4441d91c495eb162741554b2e7e012dc6a6a 100644 (file)
@@ -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());