fm->release(p.get_start(), p.get_len(), t);
}
+ _txc_update_store_statfs(txc);
+}
+
+void BlueStore::_txc_release_alloc(TransContext *txc)
+{
// update allocator with full released set
if (!g_conf->bluestore_debug_no_reuse_blocks) {
for (interval_set<uint64_t>::iterator p = txc->released.begin();
txc->allocated.clear();
txc->released.clear();
- _txc_update_store_statfs(txc);
}
void BlueStore::_kv_sync_thread()
--txc->osr->kv_committing_serially;
txc->kv_submitted = true;
}
+ for (auto txc : kv_committing) {
+ _txc_release_alloc(txc);
+ }
vector<bluestore_pextent_t> bluefs_gift_extents;
if (bluefs) {
void _txc_write_nodes(TransContext *txc, KeyValueDB::Transaction t);
void _txc_state_proc(TransContext *txc);
void _txc_aio_submit(TransContext *txc);
- void _txc_finalize_kv(TransContext *txc, KeyValueDB::Transaction t);
public:
void _txc_aio_finish(void *p) {
_txc_state_proc(static_cast<TransContext*>(p));
}
private:
void _txc_finish_io(TransContext *txc);
+ void _txc_finalize_kv(TransContext *txc, KeyValueDB::Transaction t);
+ void _txc_release_alloc(TransContext *txc);
void _txc_finish_kv(TransContext *txc);
void _txc_finish(TransContext *txc);