]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
os/bluestore/FreelistManager: use btree_map::erase return value
authorSage Weil <sage@redhat.com>
Thu, 21 Jan 2016 15:58:01 +0000 (10:58 -0500)
committerSage Weil <sage@redhat.com>
Thu, 21 Jan 2016 15:58:01 +0000 (10:58 -0500)
The btree_map erase() returns an iterator for the next element.
Perfect!

Reported-by: Igor Fedotov <ifedotov@mirantis.com>
Signed-off-by: Sage Weil <sage@redhat.com>
src/os/bluestore/FreelistManager.cc

index 0a025f56904b21a1657c194e7d4abedb81200f11..20480a77958f041789f77d1010b71456a41095f7 100644 (file)
@@ -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