Every block is used for exactly one purpose
All referenced blocks are initialized (for inodes, all referenced inodes are initialized)
All referenced blocks are marked used (for inodes, all inodes have reference count >= number of references)
All unreferenced blocks are marked free (for inodes, all inodes have reference count == number of references)