From e8346dc9a9e5bc11bcdfed74f652dceb8e56feda Mon Sep 17 00:00:00 2001 From: Mark Nelson Date: Mon, 10 Jul 2017 10:39:15 -0500 Subject: [PATCH] os/bluestore: Make BitmapFreelistManager kv itereator short lived. Signed-off-by: Mark Nelson --- src/os/bluestore/BitmapFreelistManager.cc | 1 + src/os/bluestore/BlueStore.cc | 2 ++ 2 files changed, 3 insertions(+) diff --git a/src/os/bluestore/BitmapFreelistManager.cc b/src/os/bluestore/BitmapFreelistManager.cc index a3b3a5ec8a590..d3fdbb71a8da7 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 7c9933c0213ff..681387cdac97b 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); -- 2.39.5