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:
@@ -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
|
||||||
|
|||||||
@@ -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 \
|
||||||
|
|||||||
@@ -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),
|
||||||
|
|||||||
Reference in New Issue
Block a user