Moved lfs_alloc_ckpoint out of lfsr_mtree_gc

Matching lfsr_mdir_commit, it's probably safer if lfs_alloc_ckpoint
calls are always explicit.

This is doubly true for traversals since we absolutely must not call
lfs_alloc_ckpoint in lfsr_mtree_traverse, or else lfs_alloc will break
in a really comical fashion.

It's also a bit silly how little an impact on code size this had:

  before: 36472           2680
  after:  36476 (-0.0%)   2680 (+0.0%)
This commit is contained in:
Christopher Haster
2024-07-16 19:22:42 -05:00
parent 08c9d7dd15
commit 54ecc94702
+9 -3
View File
@@ -8701,9 +8701,6 @@ static int lfsr_mtree_gc(lfs_t *lfs, lfsr_traversal_t *t,
// swap dirty/mutated flags while in lfsr_mtree_gc
t->o.o.flags = lfsr_f_swapdirty(t->o.o.flags);
// checkpoint the allocator to maximize any lookahead scans
lfs_alloc_ckpoint(lfs);
dropped:;
lfsr_tag_t tag;
lfsr_bptr_t bptr;
@@ -12692,6 +12689,9 @@ int lfsr_mount(lfs_t *lfs, uint32_t flags,
|| (lfsr_t_isckdata(flags)
&& mutated)) {
// checkpoint the allocator to maximize any lookahead scans
lfs_alloc_ckpoint(lfs);
// do we really need a full traversal?
uint32_t flags_ = flags;
if (!((lfsr_t_islookahead(flags)
@@ -13124,6 +13124,9 @@ int lfsr_fs_gc(lfs_t *lfs, uint32_t flags) {
return 0;
}
// checkpoint the allocator to maximize any lookahead scans
lfs_alloc_ckpoint(lfs);
// do we really need a full traversal?
if (!((lfsr_t_islookahead(flags)
&& lfsr_fs_canlookahead(lfs))
@@ -13298,6 +13301,9 @@ int lfsr_traversal_read(lfs_t *lfs, lfsr_traversal_t *t,
t->o.o.flags = lfsr_f_swapdirty(t->o.o.flags);
}
// checkpoint the allocator to maximize any lookahead scans
lfs_alloc_ckpoint(lfs);
while (true) {
// some redund blocks left over?
if (t->blocks[0] != -1) {