Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fixed a number of bshrub-related alloc/clobber test failures
- There was a lingering strict pcache assert in lfs_bd_erase. Very unlikely to hit, but it is possible and shouldn't be an assert now that pcache can be left in an arbitrary state. That being said, it was asserting on an actual bug in this case. - Our btree traversal was not traversing the roots of zero-weight btrees. Zero-weight btrees can happen as an intermediary step during btree/bshrub carving. If the stars align with the block allocator and intermediary carving states this can cause incorrect block allocations. - Staged updates to bsprouts/bshrubs need to be played out before updates to opened mdirs lfsr_mdir_commit, this is just because lfsr_file_isbsprout/isbshrub depend on mdir.block and updating the mdirs first corrupts this. Maybe a different organization to this code would be useful, it is already full of TODOs.
- Loading branch information