diff --git a/persistent-data/block.tcc b/persistent-data/block.tcc index 7db9b3a..cc46ff6 100644 --- a/persistent-data/block.tcc +++ b/persistent-data/block.tcc @@ -231,6 +231,7 @@ block_manager::block::flush() if (dirty_) { validator_->prepare(*data_, location_); io_->write_buffer(location_, *data_); + dirty_ = false; } } @@ -341,6 +342,9 @@ block_manager::read_lock(block_address location, if (cached_block) { (*cached_block)->check_read_lockable(); + + // FIXME: a different validator may now be set. + return read_ref(*this, *cached_block); }