From: Mark Nelson Date: Mon, 10 Jul 2017 15:39:15 +0000 (-0500) Subject: os/bluestore: Make BitmapFreelistManager kv itereator short lived. X-Git-Tag: v12.1.1~46^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=e8346dc9a9e5bc11bcdfed74f652dceb8e56feda;p=ceph.git os/bluestore: Make BitmapFreelistManager kv itereator short lived. Signed-off-by: Mark Nelson --- diff --git a/src/os/bluestore/BitmapFreelistManager.cc b/src/os/bluestore/BitmapFreelistManager.cc index a3b3a5ec8a59..d3fdbb71a8da 100644 --- a/src/os/bluestore/BitmapFreelistManager.cc +++ b/src/os/bluestore/BitmapFreelistManager.cc @@ -183,6 +183,7 @@ void BitmapFreelistManager::enumerate_reset() enumerate_offset = 0; enumerate_bl_pos = 0; enumerate_bl.clear(); + enumerate_p.reset(); } int get_next_clear_bit(bufferlist& bl, int start) diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 7c9933c0213f..681387cdac97 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -4246,6 +4246,7 @@ int BlueStore::_open_alloc() ++num; bytes += length; } + fm->enumerate_reset(); dout(1) << __func__ << " loaded " << pretty_si_t(bytes) << " in " << num << " extents" << dendl; @@ -5963,6 +5964,7 @@ int BlueStore::fsck(bool deep) ++errors; } } + fm->enumerate_reset(); size_t count = used_blocks.count(); if (used_blocks.size() != count) { assert(used_blocks.size() > count);