From 7ccd1d26491fcfcdb0d423f7c14542d2092f62b4 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Thu, 21 Jan 2016 10:58:01 -0500 Subject: [PATCH] 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 --- src/os/bluestore/FreelistManager.cc | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/src/os/bluestore/FreelistManager.cc b/src/os/bluestore/FreelistManager.cc index 0a025f56904b2..20480a77958f0 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 -- 2.39.5