Fix removed inodes not disappearing from statistics in the new store

This commit is contained in:
Vitaliy Filippov
2026-02-07 02:48:49 +03:00
parent f06d64d879
commit f0b64adb32
2 changed files with 26 additions and 3 deletions
+7 -1
View File
@@ -2027,7 +2027,13 @@ void blockstore_heap_t::free_data(inode_t inode, uint64_t location)
inode = (INODE_POOL(inode) << POOL_ID_BITS);
assert(data_alloc->get(location / dsk->data_block_size));
data_alloc->set(location / dsk->data_block_size, false);
inode_space_stats[inode] -= dsk->data_block_size;
auto sp_it = inode_space_stats.find(inode);
if (sp_it != inode_space_stats.end())
{
sp_it->second -= dsk->data_block_size;
if (sp_it->second == 0)
inode_space_stats.erase(sp_it);
}
data_used_space -= dsk->data_block_size;
}