diff --git a/src/blockstore_write.cpp b/src/blockstore_write.cpp index 07a3b61f..784efc9c 100644 --- a/src/blockstore_write.cpp +++ b/src/blockstore_write.cpp @@ -268,6 +268,16 @@ int blockstore_impl_t::dequeue_write(blockstore_op_t *op) cancel_all_writes(op, dirty_it, -ENOSPC); return 2; } +#ifndef NDEBUG + // Double-check to not overwrite anything if easily possible + if (inmemory_meta) + { + uint64_t sector = (loc / (meta_block_size / clean_entry_size)) * meta_block_size; + uint64_t pos = (loc % (meta_block_size / clean_entry_size)); + clean_disk_entry *meta_entry = (clean_disk_entry*)(metadata_buffer + sector + pos*clean_entry_size); + assert(!meta_entry->oid.inode); + } +#endif write_iodepth++; BS_SUBMIT_GET_SQE(sqe, data); dirty_it->second.location = loc << block_order;