From: Igor Fedotov Date: Fri, 2 Oct 2020 13:35:31 +0000 (+0300) Subject: os/bluestore: avoid recursive calls in SimpleCollectionListIterator. X-Git-Tag: v16.1.0~928^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F37525%2Fhead;p=ceph.git os/bluestore: avoid recursive calls in SimpleCollectionListIterator. Signed-off-by: Igor Fedotov --- diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 1530caed2f87..d086685c584b 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -694,16 +694,14 @@ private: ghobject_t m_oid; void get_oid() { - if (!valid()) { - return; + m_oid = ghobject_t(); + while (m_it->valid() && is_extent_shard_key(m_it->key())) { + m_it->next(); } - - if (is_extent_shard_key(m_it->key())) { - next(); + if (!valid()) { return; } - m_oid = ghobject_t(); int r = get_key_object(m_it->key(), &m_oid); ceph_assert(r == 0); }