From: Sage Weil Date: Thu, 21 Jan 2016 15:58:01 +0000 (-0500) Subject: os/bluestore/FreelistManager: use btree_map::erase return value X-Git-Tag: v10.0.4~156^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=7ccd1d26491fcfcdb0d423f7c14542d2092f62b4;p=ceph.git os/bluestore/FreelistManager: use btree_map::erase return value The btree_map erase() returns an iterator for the next element. Perfect! Reported-by: Igor Fedotov Signed-off-by: Sage Weil --- diff --git a/src/os/bluestore/FreelistManager.cc b/src/os/bluestore/FreelistManager.cc index 0a025f56904b..20480a77958f 100644 --- a/src/os/bluestore/FreelistManager.cc +++ b/src/os/bluestore/FreelistManager.cc @@ -206,16 +206,7 @@ int FreelistManager::release( if (map_t_has_stable_iterators) { kv_free.erase(p++); } else { - uint64_t next = 0; - ++p; - if (p != kv_free.end()) - next = p->first; - --p; - kv_free.erase(p); - if (next) - p = kv_free.find(next); - else - p = kv_free.end(); + p = kv_free.erase(p); } } else if (p->first + p->second > offset) { derr << __func__ << " bad release " << offset << "~" << length