No need to walk twice on the buffer for updates

This also allows to mmap read-only

Idea from des@