intermediate commit while implementing Block::data_lock