c56124f90f
This bit of code allows us to mount an "inconsistent" filesystem after powerloss and behave as though we've fixed any pending grms without actually fixing the grms. This lets the filesystem appear consistent without needing to modify the disk, and allows truely readonly mounts without sacrificing powerloss-resilience. This works by just checking any readonly mid operations against pending grms and returning NOENT if a fix would remove the mid. Fortunately the more complex mid operations occur when mutating the filesystem, which we can ignore as any mutation must be preceded by fixing pending grms. This check has been added to lfsr_mtree_namelookup and lfsr_mtree_seek, which should propagate the behavior to high-level functions with minimal code impact. This leaves only lfsr_mtree_lookup ignoring pending grms, which is useful because we need it to actually fix the grms. I don't believe this function will ever be called by a high-level function directly... Coverage of readonly grms have also been added to the tests.