Files
littlefs/tests
Christopher Haster 5fb3600d90 Fixed mroot chain commits not working
Maybe the subject line should say "Implemented", because these never
worked in the first place. Unfortunately our tests missed this due to a
couple reasons:

- Mroot chains are difficult to create due to the required exponential
  growth.

- The only thing that actually commits to chain mroots is mdir
  compaction. Though this functionality will be useful for future block
  eviction/error correction.

- Previous revision count issues were making relocations in our
  compaction tests unlikely.

Fortunately, now that revision count behavior is more correct, our tests
are correctly highlighting that this is broken.

---

Implementing chain mroot commits was a bit intimidating, but fortunately
it just required a bit of teasing to get lfs3_mdir_commit_ to trigger
the tail-recursive mroot chain update when the mdir is a non-active
mroot.

The gcksum is also doing a great job here with identifying bugs. Without
it this bug would have been difficult to notice, since compactions
otherwise have no observable effect on the system.

Code changes:

                    code          stack          ctx
  before:          35164           2136          660
  after:           35224 (+0.2%)   2136 (+0.0%)  660 (+0.0%)

                    code          stack          ctx
  gbmap before:    38400           2144          776
  gbmap after:     38464 (+0.2%)   2144 (+0.0%)  776 (+0.0%)

                    code          stack          ctx
  preerase before: 38940           2168          796
  preerase after:  39008 (+0.2%)   2168 (+0.0%)  796 (+0.0%)
2026-01-09 00:03:12 -06:00
..
2025-07-18 18:29:41 -05:00