From: xie xingguo Date: Sat, 29 Jun 2019 00:36:15 +0000 (+0800) Subject: osd/PrimaryLogPG: do_op - do not create head object twice X-Git-Tag: v15.1.0~2305^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=3a4737eebb76e233bfcd90213ead5824cb6826af;p=ceph.git osd/PrimaryLogPG: do_op - do not create head object twice That might be expensive, especially for the hot paths. Signed-off-by: xie xingguo --- diff --git a/src/osd/PrimaryLogPG.cc b/src/osd/PrimaryLogPG.cc index 093cb3bce3fc..061dc3d8a5b4 100644 --- a/src/osd/PrimaryLogPG.cc +++ b/src/osd/PrimaryLogPG.cc @@ -2029,12 +2029,8 @@ void PrimaryLogPG::do_op(OpRequestRef& op) hobject_t missing_oid; // kludge around the fact that LIST_SNAPS sets CEPH_SNAPDIR for LIST_SNAPS - hobject_t _oid_head; - if (m->get_snapid() == CEPH_SNAPDIR) { - _oid_head = m->get_hobj().get_head(); - } const hobject_t& oid = - m->get_snapid() == CEPH_SNAPDIR ? _oid_head : m->get_hobj(); + m->get_snapid() == CEPH_SNAPDIR ? head : m->get_hobj(); // make sure LIST_SNAPS is on CEPH_SNAPDIR and nothing else for (vector::iterator p = m->ops.begin(); p != m->ops.end(); ++p) {