void FreelistManager::dump()
{
Mutex::Locker l(lock);
+ _dump();
+}
+
+void FreelistManager::_dump()
+{
dout(30) << __func__ << " " << total_free
<< " in " << kv_free.size() << " extents" << dendl;
for (auto p = kv_free.begin();
if (p != kv_free.end()) {
derr << " existing extent " << p->first << "~" << p->second << dendl;
}
- dump();
+ _dump();
assert(0 == "bad allocate");
}
} else if (p->first + p->second > offset) {
derr << __func__ << " bad release " << offset << "~" << length
<< " overlaps with " << p->first << "~" << p->second << dendl;
- dump();
+ _dump();
assert(0 == "bad release overlap");
} else {
dout(30) << __func__ << " previous extent " << p->first << "~" << p->second
} else if (p->first < offset + length) {
derr << __func__ << " bad release " << offset << "~" << length
<< " overlaps with " << p->first << "~" << p->second << dendl;
- dump();
+ _dump();
assert(0 == "bad release overlap");
} else {
dout(30) << __func__ << " next extent " << p->first << "~" << p->second