Dropped LFS_T_MTREEONLY from all APIs except lfsr_traversal_t

Looking at future planned features, we're running into some real issues
fitting all these flags into 32 bits.

I think the only real use case for LFS_T_MTREEONLY is in
lfsr_traversal_t, where the depth of traversal can't be infered. So no
reason to keep this flag around in the other APIs.

No code changes:

                   code          stack          ctx
  default before: 37804           2608          620
  default after:  37804 (+0.0%)   2608 (+0.0%)  620 (+0.0%)

  gc before:      37940           2608          768
  gc after:       37940 (+0.0%)   2608 (+0.0%)  768 (+0.0%)
This commit is contained in:
Christopher Haster
2025-01-08 03:53:08 -06:00
parent a4c74967ec
commit 94e9cb5081
3 changed files with 6 additions and 25 deletions
+6 -14
View File
@@ -13182,8 +13182,7 @@ static int lfs_init(lfs_t *lfs, uint32_t flags,
#ifdef LFS_GC #ifdef LFS_GC
// unknown gc flags? // unknown gc flags?
LFS_ASSERT((lfs->cfg->gc_flags & ~( LFS_ASSERT((lfs->cfg->gc_flags & ~(
LFS_GC_MTREEONLY LFS_GC_MKCONSISTENT
| LFS_GC_MKCONSISTENT
| LFS_GC_LOOKAHEAD | LFS_GC_LOOKAHEAD
| LFS_GC_COMPACT | LFS_GC_COMPACT
| LFS_GC_CKMETA | LFS_GC_CKMETA
@@ -13967,7 +13966,6 @@ int lfsr_mount(lfs_t *lfs, uint32_t flags,
| LFS_IFDEF_CKFETCHES(LFS_M_CKFETCHES, 0) | LFS_IFDEF_CKFETCHES(LFS_M_CKFETCHES, 0)
| LFS_IFDEF_CKPARITY(LFS_M_CKPARITY, 0) | LFS_IFDEF_CKPARITY(LFS_M_CKPARITY, 0)
| LFS_IFDEF_CKDATACKSUMS(LFS_M_CKDATACKSUMS, 0) | LFS_IFDEF_CKDATACKSUMS(LFS_M_CKDATACKSUMS, 0)
| LFS_M_MTREEONLY
| LFS_M_MKCONSISTENT | LFS_M_MKCONSISTENT
| LFS_M_LOOKAHEAD | LFS_M_LOOKAHEAD
| LFS_M_COMPACT | LFS_M_COMPACT
@@ -14003,8 +14001,7 @@ int lfsr_mount(lfs_t *lfs, uint32_t flags,
// run gc if requested // run gc if requested
if (flags & ( if (flags & (
LFS_M_MTREEONLY LFS_M_MKCONSISTENT
| LFS_M_MKCONSISTENT
| LFS_M_LOOKAHEAD | LFS_M_LOOKAHEAD
| LFS_M_COMPACT | LFS_M_COMPACT
| LFS_M_CKMETA | LFS_M_CKMETA
@@ -14012,8 +14009,7 @@ int lfsr_mount(lfs_t *lfs, uint32_t flags,
lfsr_traversal_t t; lfsr_traversal_t t;
err = lfsr_fs_gc_(lfs, &t, err = lfsr_fs_gc_(lfs, &t,
flags & ( flags & (
LFS_M_MTREEONLY LFS_M_MKCONSISTENT
| LFS_M_MKCONSISTENT
| LFS_M_LOOKAHEAD | LFS_M_LOOKAHEAD
| LFS_M_COMPACT | LFS_M_COMPACT
| LFS_M_CKMETA | LFS_M_CKMETA
@@ -14145,7 +14141,6 @@ int lfsr_format(lfs_t *lfs, uint32_t flags,
| LFS_IFDEF_CKFETCHES(LFS_F_CKFETCHES, 0) | LFS_IFDEF_CKFETCHES(LFS_F_CKFETCHES, 0)
| LFS_IFDEF_CKPARITY(LFS_F_CKPARITY, 0) | LFS_IFDEF_CKPARITY(LFS_F_CKPARITY, 0)
| LFS_IFDEF_CKDATACKSUMS(LFS_F_CKDATACKSUMS, 0) | LFS_IFDEF_CKDATACKSUMS(LFS_F_CKDATACKSUMS, 0)
| LFS_F_MTREEONLY
| LFS_F_COMPACT | LFS_F_COMPACT
| LFS_F_CKMETA | LFS_F_CKMETA
| LFS_F_CKDATA)) == 0); | LFS_F_CKDATA)) == 0);
@@ -14184,15 +14179,13 @@ int lfsr_format(lfs_t *lfs, uint32_t flags,
// run gc if requested // run gc if requested
if (flags & ( if (flags & (
LFS_F_MTREEONLY LFS_F_COMPACT
| LFS_F_COMPACT
| LFS_F_CKMETA | LFS_F_CKMETA
| LFS_F_CKDATA)) { | LFS_F_CKDATA)) {
lfsr_traversal_t t; lfsr_traversal_t t;
err = lfsr_fs_gc_(lfs, &t, err = lfsr_fs_gc_(lfs, &t,
flags & ( flags & (
LFS_F_MTREEONLY LFS_F_COMPACT
| LFS_F_COMPACT
| LFS_F_CKMETA | LFS_F_CKMETA
| LFS_F_CKDATA), | LFS_F_CKDATA),
-1); -1);
@@ -14456,8 +14449,7 @@ static int lfsr_fs_gc_(lfs_t *lfs, lfsr_traversal_t *t,
// we should have check these earlier, but it doesn't hurt to // we should have check these earlier, but it doesn't hurt to
// double check // double check
LFS_ASSERT((flags & ~( LFS_ASSERT((flags & ~(
LFS_GC_MTREEONLY LFS_GC_MKCONSISTENT
| LFS_GC_MKCONSISTENT
| LFS_GC_LOOKAHEAD | LFS_GC_LOOKAHEAD
| LFS_GC_COMPACT | LFS_GC_COMPACT
| LFS_GC_CKMETA | LFS_GC_CKMETA
-4
View File
@@ -173,7 +173,6 @@ enum lfs_type {
0x08000000 // Check data checksums on reads 0x08000000 // Check data checksums on reads
#endif #endif
#define LFS_F_MTREEONLY 0x00000800 // Only traverse the mtree
#define LFS_F_COMPACT 0x00008000 // Compact metadata logs #define LFS_F_COMPACT 0x00008000 // Compact metadata logs
#define LFS_F_CKMETA 0x00010000 // Check metadata checksums #define LFS_F_CKMETA 0x00010000 // Check metadata checksums
#define LFS_F_CKDATA 0x00020000 // Check metadata + data checksums #define LFS_F_CKDATA 0x00020000 // Check metadata + data checksums
@@ -197,7 +196,6 @@ enum lfs_type {
0x08000000 // Check data checksums on reads 0x08000000 // Check data checksums on reads
#endif #endif
#define LFS_M_MTREEONLY 0x00000800 // Only traverse the mtree
#define LFS_M_MKCONSISTENT \ #define LFS_M_MKCONSISTENT \
0x00001000 // Make the filesystem consistent 0x00001000 // Make the filesystem consistent
#define LFS_M_LOOKAHEAD 0x00002000 // Populate lookahead buffer #define LFS_M_LOOKAHEAD 0x00002000 // Populate lookahead buffer
@@ -257,8 +255,6 @@ enum lfs_btype {
#define LFS_T_MUTATED 0x00000200 // Filesystem modified by traversal #define LFS_T_MUTATED 0x00000200 // Filesystem modified by traversal
// GC flags // GC flags
#define LFS_GC_MTREEONLY \
0x00000800 // Only traverse the mtree
#define LFS_GC_MKCONSISTENT \ #define LFS_GC_MKCONSISTENT \
0x00001000 // Make the filesystem consistent 0x00001000 // Make the filesystem consistent
#define LFS_GC_LOOKAHEAD \ #define LFS_GC_LOOKAHEAD \
-7
View File
@@ -21,7 +21,6 @@ defines.CKPROGS = [false, true]
defines.CKFETCHES = [false, true] defines.CKFETCHES = [false, true]
defines.CKPARITY = [false, true] defines.CKPARITY = [false, true]
defines.CKDATACKSUMS = [false, true] defines.CKDATACKSUMS = [false, true]
defines.MTREEONLY = [false, true]
defines.MKCONSISTENT = [false, true] defines.MKCONSISTENT = [false, true]
defines.LOOKAHEAD = [false, true] defines.LOOKAHEAD = [false, true]
defines.COMPACT = [false, true] defines.COMPACT = [false, true]
@@ -35,8 +34,6 @@ if = [
'!RDONLY || !MKCONSISTENT', '!RDONLY || !MKCONSISTENT',
'!RDONLY || !LOOKAHEAD', '!RDONLY || !LOOKAHEAD',
'!RDONLY || !COMPACT', '!RDONLY || !COMPACT',
'!MTREEONLY || !LOOKAHEAD',
'!MTREEONLY || !CKDATA',
] ]
code = ''' code = '''
lfs_t lfs; lfs_t lfs;
@@ -51,7 +48,6 @@ code = '''
| ((CKDATACKSUMS) | ((CKDATACKSUMS)
? LFS_IFDEF_CKDATACKSUMS(LFS_M_CKDATACKSUMS, -1) ? LFS_IFDEF_CKDATACKSUMS(LFS_M_CKDATACKSUMS, -1)
: 0) : 0)
| ((MTREEONLY) ? LFS_M_MTREEONLY : 0)
| ((MKCONSISTENT) ? LFS_M_MKCONSISTENT : 0) | ((MKCONSISTENT) ? LFS_M_MKCONSISTENT : 0)
| ((LOOKAHEAD) ? LFS_M_LOOKAHEAD : 0) | ((LOOKAHEAD) ? LFS_M_LOOKAHEAD : 0)
| ((COMPACT) ? LFS_M_COMPACT : 0) | ((COMPACT) ? LFS_M_COMPACT : 0)
@@ -89,7 +85,6 @@ defines.CKPROGS = [false, true]
defines.CKFETCHES = [false, true] defines.CKFETCHES = [false, true]
defines.CKPARITY = [false, true] defines.CKPARITY = [false, true]
defines.CKDATACKSUMS = [false, true] defines.CKDATACKSUMS = [false, true]
defines.MTREEONLY = [false, true]
defines.COMPACT = [false, true] defines.COMPACT = [false, true]
defines.CKMETA = [false, true] defines.CKMETA = [false, true]
defines.CKDATA = [false, true] defines.CKDATA = [false, true]
@@ -98,7 +93,6 @@ if = [
'LFS_IFDEF_CKFETCHES(true, !CKFETCHES)', 'LFS_IFDEF_CKFETCHES(true, !CKFETCHES)',
'LFS_IFDEF_CKPARITY(true, !CKPARITY)', 'LFS_IFDEF_CKPARITY(true, !CKPARITY)',
'LFS_IFDEF_CKDATACKSUMS(true, !CKDATACKSUMS)', 'LFS_IFDEF_CKDATACKSUMS(true, !CKDATACKSUMS)',
'!MTREEONLY || !CKDATA',
] ]
code = ''' code = '''
lfs_t lfs; lfs_t lfs;
@@ -110,7 +104,6 @@ code = '''
| ((CKDATACKSUMS) | ((CKDATACKSUMS)
? LFS_IFDEF_CKDATACKSUMS(LFS_F_CKDATACKSUMS, -1) ? LFS_IFDEF_CKDATACKSUMS(LFS_F_CKDATACKSUMS, -1)
: 0) : 0)
| ((MTREEONLY) ? LFS_M_MTREEONLY : 0)
| ((COMPACT) ? LFS_M_COMPACT : 0) | ((COMPACT) ? LFS_M_COMPACT : 0)
| ((CKMETA) ? LFS_M_CKMETA : 0) | ((CKMETA) ? LFS_M_CKMETA : 0)
| ((CKDATA) ? LFS_M_CKDATA : 0), | ((CKDATA) ? LFS_M_CKDATA : 0),