From: xie xingguo Date: Fri, 30 Sep 2016 06:53:28 +0000 (+0800) Subject: os/bluestore: avoid comparing object key and name twice X-Git-Tag: v11.0.1~57^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=adb274c63151e0674302b79c80d5346effd70e06;p=ceph.git os/bluestore: avoid comparing object key and name twice Signed-off-by: xie xingguo --- diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 79986fd34afd..b54d9b47ba9c 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -276,11 +276,9 @@ static void get_object_key(const ghobject_t& oid, string *key) // is a key... could be < = or >. append_escaped(oid.hobj.get_key(), key); // (ASCII chars < = and > sort in that order, yay) - if (oid.hobj.get_key() < oid.hobj.oid.name) { - key->append("<"); - append_escaped(oid.hobj.oid.name, key); - } else if (oid.hobj.get_key() > oid.hobj.oid.name) { - key->append(">"); + int r = oid.hobj.get_key().compare(oid.hobj.oid.name); + if (r) { + key->append(r > 0 ? ">" : "<"); append_escaped(oid.hobj.oid.name, key); } else { // same as no key