} else {
l.unlock();
a->set_cleaning_zone(zone_to_clean);
- _zoned_clean_zone(zone_to_clean);
+ _zoned_clean_zone(zone_to_clean, a, f);
a->clear_cleaning_zone(zone_to_clean);
l.lock();
}
zoned_cleaner_started = false;
}
-void BlueStore::_zoned_clean_zone(uint64_t zone)
+void BlueStore::_zoned_clean_zone(
+ uint64_t zone,
+ ZonedAllocator *a,
+ ZonedFreelistManager *f
+ )
{
dout(10) << __func__ << " cleaning zone 0x" << std::hex << zone << std::dec << dendl;
- auto a = dynamic_cast<ZonedAllocator*>(alloc);
- auto f = dynamic_cast<ZonedFreelistManager*>(fm);
KeyValueDB::Iterator it = db->get_iterator(PREFIX_ZONED_CL_INFO);
std::string zone_start;
void _zoned_cleaner_start();
void _zoned_cleaner_stop();
void _zoned_cleaner_thread();
- void _zoned_clean_zone(uint64_t zone_num);
+ void _zoned_clean_zone(uint64_t zone_num,
+ class ZonedAllocator *a,
+ class ZonedFreelistManager *f);
void _clean_some(ghobject_t oid, uint32_t zone_num);
#endif