alloc: Merged LOOKAHEAD+LOOKGBMAP -> single LOOKAHEAD flag

Our flag space is already really packed, and I'm not sure having these
as separate flags is meaningful or useful for users. They both indicate
to repopulate allocators, and most users probably won't care that there
are two subtly different allocators operating under the hood.

There's an argument that LOOKAHEAD not touching disk is a useful
distinction, but in practice you really only need LOOKAHEAD work when
mounted RDWR.

So, merged the behaviors of LOOKAHEAD + LOOKGBMAP such that
LFS3_*_LOOKAHEAD requests repopulation of all allocators based on
gc_lookahead_thresh and gc_lookgbmap_thresh.

In priority order (some notes below):

1. If max(lookahead, gbmap) < gc_lookahead_thresh => repop lookahead
2. If gbmap < gc_lookgbmap_thresh                 => repop gbmap

As a plus, this makes it easier to avoid LFS3_IFDEF_GBMAP mess.

---

It's interesting to note LFS3_*_LOOKAHEAD will still repopulate the
lookahead buffer when the gbmap is present, but only if this would gain
more knowledge than was is currently in the gbmap.

I considered disabling lookahead scans completely when we have a gbmap,
but repopulating the lookahead buffer is still useful if the gbmap is at
risk of exhaustion. This is what gc_lookahead_thresh is for anyways, and
users can set gc_lookahead_thresh=0 if they want to disable this
behavior.

Relatedly, lookahead scans are actually prioritized over gbmap scans
(when they would gain knowledge). In theory this minimizes gc latency,
as gbmap scans risk triggering a full lookahead scan when building the
new gbmap.

---

Code changes minimal:

                 code          stack          ctx
  before:       35152           2136          660
  after:        35152 (+0.0%)   2136 (+0.0%)  660 (+0.0%)

                 code          stack          ctx
  gbmap before: 38076           2136          776
  gbmap after:  38080 (+0.0%)   2136 (+0.0%)  776 (+0.0%)
This commit is contained in:
Christopher Haster
2025-12-04 16:47:22 -06:00
parent ee50dc5307
commit ffc565508a
6 changed files with 411 additions and 603 deletions
+50 -184
View File
@@ -14,7 +14,7 @@ if = '''
# test that lookahead can make progress in isolation
[cases.test_gc_relookahead_progress]
[cases.test_gc_lookahead_progress]
defines.CKMETA = [false, true]
defines.CKDATA = [false, true]
defines.GC_FLAGS = '''
@@ -31,6 +31,7 @@ defines.SIZE = [
'2*BLOCK_SIZE',
'8*BLOCK_SIZE',
]
if = '!GBMAP'
ifdef = 'LFS3_GC'
code = '''
lfs3_t lfs3;
@@ -83,7 +84,7 @@ code = '''
'''
# test that lookahead dirtying still works with the GC API
[cases.test_gc_relookahead_mutation]
[cases.test_gc_lookahead_mutation]
defines.CKMETA = [false, true]
defines.CKDATA = [false, true]
defines.GC_FLAGS = '''
@@ -99,8 +100,11 @@ defines.SIZE = [
'2*BLOCK_SIZE',
'8*BLOCK_SIZE',
]
# we need something to keep the traversal running
if = 'CKMETA || CKDATA'
if = [
'!GBMAP',
# we need something to keep the traversal running
'CKMETA || CKDATA',
]
ifdef = 'LFS3_GC'
code = '''
lfs3_t lfs3;
@@ -161,10 +165,10 @@ code = '''
lfs3_unmount(&lfs3) => 0;
'''
# test that we can relax lookahead repopulation with
# gc_relookahead_thresh
[cases.test_gc_relookahead_relaxed]
# relax our repop thresh
# test that we can relax lookahead scanning with
# gc_lookahead_thresh
[cases.test_gc_lookahead_relaxed]
# relax our lookahead thresh
defines.GC_LOOKAHEAD_THRESH = [
'-1',
'8*LOOKAHEAD_SIZE - (8*LOOKAHEAD_SIZE/4)',
@@ -179,6 +183,7 @@ defines.GC_FLAGS = '''
'''
defines.GC_STEPS = [-1, 1, 2, 10, 100, 1000]
defines.SIZE = 'BLOCK_SIZE'
if = '!GBMAP'
ifdef = 'LFS3_GC'
code = '''
lfs3_t lfs3;
@@ -273,14 +278,12 @@ code = '''
'''
# test that regbmap can make progress in isolation
[cases.test_gc_regbmap_progress]
defines.LOOKAHEAD = [false, true]
# test that lookgbmap can make progress in isolation
[cases.test_gc_lookgbmap_progress]
defines.CKMETA = [false, true]
defines.CKDATA = [false, true]
defines.GC_FLAGS = '''
LFS3_GC_LOOKGBMAP
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
LFS3_GC_LOOKAHEAD
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
'''
@@ -317,7 +320,7 @@ code = '''
// expect dirty initial state or else our test doesn't work
struct lfs3_fsinfo fsinfo;
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
assert(fsinfo.flags & LFS3_I_LOOKGBMAP);
assert(fsinfo.flags & LFS3_I_LOOKAHEAD);
assert(lfs3.handles != &lfs3.gc.t.h);
// run GC until we make progress
@@ -328,7 +331,7 @@ code = '''
lfs3_fs_gc(&lfs3) => 0;
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
if (!(fsinfo.flags & LFS3_I_LOOKGBMAP)) {
if (!(fsinfo.flags & LFS3_I_LOOKAHEAD)) {
break;
}
}
@@ -343,14 +346,12 @@ code = '''
lfs3_unmount(&lfs3) => 0;
'''
# test that regbmap dirtying still works with the GC API
[cases.test_gc_regbmap_mutation]
defines.LOOKAHEAD = [false, true]
# test that lookgbmap dirtying still works with the GC API
[cases.test_gc_lookgbmap_mutation]
defines.CKMETA = [false, true]
defines.CKDATA = [false, true]
defines.GC_FLAGS = '''
LFS3_GC_LOOKGBMAP
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
LFS3_GC_LOOKAHEAD
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
'''
@@ -390,7 +391,7 @@ code = '''
// expect dirty initial state or else our test doesn't work
struct lfs3_fsinfo fsinfo;
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
assert(fsinfo.flags & LFS3_I_LOOKGBMAP);
assert(fsinfo.flags & LFS3_I_LOOKAHEAD);
assert(lfs3.handles != &lfs3.gc.t.h);
// run GC one step
@@ -413,7 +414,7 @@ code = '''
// we should _not_ make progress
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
assert(fsinfo.flags & LFS3_I_LOOKGBMAP);
assert(fsinfo.flags & LFS3_I_LOOKAHEAD);
// check the file contents
lfs3_file_open(&lfs3, &file, "spider", LFS3_O_RDONLY) => 0;
@@ -425,20 +426,18 @@ code = '''
lfs3_unmount(&lfs3) => 0;
'''
# test that we can relax gbmap repopulation with gc_regbmap_thresh
[cases.test_gc_regbmap_relaxed]
# relax our repop thresh
# test that we can relax gbmap repopulation with gc_lookgbmap_thresh
[cases.test_gc_lookgbmap_relaxed]
# relax our lookgbmap thresh
defines.GC_LOOKGBMAP_THRESH = [
'-1',
'BLOCK_COUNT - (BLOCK_COUNT/4)',
'BLOCK_COUNT - (BLOCK_COUNT/2)',
]
defines.LOOKAHEAD = [false, true]
defines.CKMETA = [false, true]
defines.CKDATA = [false, true]
defines.GC_FLAGS = '''
LFS3_GC_LOOKGBMAP
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
LFS3_GC_LOOKAHEAD
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
'''
@@ -476,7 +475,7 @@ code = '''
struct lfs3_fsinfo fsinfo;
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
if (!(fsinfo.flags & LFS3_I_LOOKGBMAP)) {
if (!(fsinfo.flags & LFS3_I_LOOKAHEAD)) {
break;
}
}
@@ -503,7 +502,7 @@ code = '''
struct lfs3_fsinfo fsinfo;
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
if (fsinfo.flags & LFS3_I_LOOKGBMAP) {
if (fsinfo.flags & LFS3_I_LOOKAHEAD) {
// check that we actually relaxed repopulations
if ((lfs3_size_t)GC_LOOKGBMAP_THRESH
< BLOCK_COUNT-1) {
@@ -524,7 +523,7 @@ code = '''
struct lfs3_fsinfo fsinfo;
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
if (!(fsinfo.flags & LFS3_I_LOOKGBMAP)) {
if (!(fsinfo.flags & LFS3_I_LOOKAHEAD)) {
break;
}
}
@@ -1823,14 +1822,12 @@ done:;
defines.AFTER = [0, 1, 2, 3]
defines.MKCONSISTENT = [false, true]
defines.LOOKAHEAD = [false, true]
defines.LOOKGBMAP = [false, true]
defines.COMPACTMETA = [false, true]
defines.CKMETA = [false, true]
defines.CKDATA = [false, true]
defines.GC_FLAGS = '''
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
| ((LOOKGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_LOOKGBMAP, -1) : 0)
| ((COMPACTMETA) ? LFS3_GC_COMPACTMETA : 0)
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
@@ -1849,7 +1846,6 @@ defines.SIZE = [
if = [
'(SIZE*N)/BLOCK_SIZE <= 32',
'LFS3_IFDEF_GC(true, AFTER != 0)',
'GBMAP || !LOOKGBMAP',
]
code = '''
lfs3_t lfs3;
@@ -1888,10 +1884,8 @@ code = '''
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_MKCONSISTENT
| LFS3_I_LOOKAHEAD
| ((GBMAP)
? (LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1)
& fsinfo.flags)
| ((!GBMAP || (fsinfo.flags & LFS3_I_LOOKAHEAD))
? LFS3_I_LOOKAHEAD
: 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
@@ -1914,9 +1908,6 @@ code = '''
if (!(fsinfo.flags & (
((MKCONSISTENT) ? LFS3_I_MKCONSISTENT : 0)
| ((LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
| ((LOOKGBMAP)
? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1)
: 0)
| ((COMPACTMETA) ? LFS3_I_COMPACTMETA : 0)
| ((CKMETA) ? LFS3_I_CKMETA : 0)
| ((CKDATA) ? LFS3_I_CKDATA : 0)))) {
@@ -1946,9 +1937,6 @@ code = '''
if (!(fsinfo.flags & (
((MKCONSISTENT) ? LFS3_I_MKCONSISTENT : 0)
| ((LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
| ((LOOKGBMAP)
? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1)
: 0)
| ((COMPACTMETA) ? LFS3_I_COMPACTMETA : 0)
| ((CKMETA) ? LFS3_I_CKMETA : 0)
| ((CKDATA) ? LFS3_I_CKDATA : 0)))) {
@@ -1975,24 +1963,6 @@ code = '''
lfs3_trv_close(&lfs3, &trv) => 0;
}
#ifdef LFS3_GBMAP
if (LOOKGBMAP && (fsinfo.flags & LFS3_I_LOOKGBMAP)) {
// we need an explicit traversal for this
lfs3_trv_t trv;
lfs3_trv_open(&lfs3, &trv,
LFS3_T_RDWR | LFS3_T_LOOKGBMAP) => 0;
while (true) {
struct lfs3_tinfo tinfo;
int err = lfs3_trv_read(&lfs3, &trv, &tinfo);
assert(err == 0 || err == LFS3_ERR_NOENT);
if (err == LFS3_ERR_NOENT) {
break;
}
}
lfs3_trv_close(&lfs3, &trv) => 0;
}
#endif
if (COMPACTMETA && (fsinfo.flags & LFS3_I_COMPACTMETA)) {
// we need an explicit traversal for this
lfs3_trv_t trv;
@@ -2033,12 +2003,9 @@ code = '''
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| ((!MKCONSISTENT) ? LFS3_I_MKCONSISTENT : 0)
| ((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
| ((!LOOKGBMAP)
? ((GBMAP)
? (LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1)
& fsinfo.flags)
: 0)
| ((!LOOKAHEAD
&& (!GBMAP || (fsinfo.flags & LFS3_I_LOOKAHEAD)))
? LFS3_I_LOOKAHEAD
: 0)
| ((!COMPACTMETA) ? LFS3_I_COMPACTMETA : 0)
// note ckdata implies ckmeta
@@ -2058,14 +2025,12 @@ code = '''
defines.AFTER = [0, 1, 2, 3]
defines.MKCONSISTENT = [false, true]
defines.LOOKAHEAD = [false, true]
defines.LOOKGBMAP = [false, true]
defines.COMPACTMETA = [false, true]
defines.CKMETA = [false, true]
defines.CKDATA = [false, true]
defines.GC_FLAGS = '''
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
| ((LOOKGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_LOOKGBMAP, -1) : 0)
| ((COMPACTMETA) ? LFS3_GC_COMPACTMETA : 0)
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
@@ -2084,7 +2049,6 @@ defines.SIZE = [
if = [
'(SIZE*N)/BLOCK_SIZE <= 32',
'LFS3_IFDEF_GC(true, AFTER != 0)',
'GBMAP || !LOOKGBMAP',
]
code = '''
lfs3_t lfs3;
@@ -2123,10 +2087,8 @@ code = '''
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_MKCONSISTENT
| LFS3_I_LOOKAHEAD
| ((GBMAP)
? (LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1)
& fsinfo.flags)
| ((!GBMAP || (fsinfo.flags & LFS3_I_LOOKAHEAD))
? LFS3_I_LOOKAHEAD
: 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
@@ -2149,9 +2111,6 @@ code = '''
if (!(fsinfo.flags & (
((MKCONSISTENT) ? LFS3_I_MKCONSISTENT : 0)
| ((LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
| ((LOOKGBMAP)
? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1)
: 0)
| ((COMPACTMETA) ? LFS3_I_COMPACTMETA : 0)
| ((CKMETA) ? LFS3_I_CKMETA : 0)
| ((CKDATA) ? LFS3_I_CKDATA : 0)))) {
@@ -2181,9 +2140,6 @@ code = '''
if (!(fsinfo.flags & (
((MKCONSISTENT) ? LFS3_I_MKCONSISTENT : 0)
| ((LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
| ((LOOKGBMAP)
? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1)
: 0)
| ((COMPACTMETA) ? LFS3_I_COMPACTMETA : 0)
| ((CKMETA) ? LFS3_I_CKMETA : 0)
| ((CKDATA) ? LFS3_I_CKDATA : 0)))) {
@@ -2210,24 +2166,6 @@ code = '''
lfs3_trv_close(&lfs3, &trv) => 0;
}
#ifdef LFS3_GBMAP
if (LOOKGBMAP && (fsinfo.flags & LFS3_I_LOOKGBMAP)) {
// we need an explicit traversal for this
lfs3_trv_t trv;
lfs3_trv_open(&lfs3, &trv,
LFS3_T_RDWR | LFS3_T_LOOKGBMAP) => 0;
while (true) {
struct lfs3_tinfo tinfo;
int err = lfs3_trv_read(&lfs3, &trv, &tinfo);
assert(err == 0 || err == LFS3_ERR_NOENT);
if (err == LFS3_ERR_NOENT) {
break;
}
}
lfs3_trv_close(&lfs3, &trv) => 0;
}
#endif
if (COMPACTMETA && (fsinfo.flags & LFS3_I_COMPACTMETA)) {
// we need an explicit traversal for this
lfs3_trv_t trv;
@@ -2268,12 +2206,9 @@ code = '''
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| ((!MKCONSISTENT) ? LFS3_I_MKCONSISTENT : 0)
| ((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
| ((!LOOKGBMAP)
? ((GBMAP)
? (LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1)
& fsinfo.flags)
: 0)
| ((!LOOKAHEAD
&& (!GBMAP || (fsinfo.flags & LFS3_I_LOOKAHEAD)))
? LFS3_I_LOOKAHEAD
: 0)
| ((!COMPACTMETA) ? LFS3_I_COMPACTMETA : 0)
// note ckdata implies ckmeta
@@ -2290,13 +2225,9 @@ code = '''
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_MKCONSISTENT
| LFS3_I_LOOKAHEAD
| ((LOOKGBMAP)
? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1U)
: (GBMAP)
? (LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1)
& fsinfo.flags)
: 0)
| ((!GBMAP || (fsinfo.flags & LFS3_I_LOOKAHEAD))
? LFS3_I_LOOKAHEAD
: 0)
| LFS3_I_COMPACTMETA
// note ckdata implies ckmeta, but uncking ckdata does
// _not_ imply uncking ckmeta
@@ -2320,9 +2251,6 @@ code = '''
if (!(fsinfo.flags & (
((MKCONSISTENT) ? LFS3_I_MKCONSISTENT : 0)
| ((LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
| ((LOOKGBMAP)
? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1)
: 0)
| ((COMPACTMETA) ? LFS3_I_COMPACTMETA : 0)
| ((CKMETA) ? LFS3_I_CKMETA : 0)
| ((CKDATA) ? LFS3_I_CKDATA : 0)))) {
@@ -2352,9 +2280,6 @@ code = '''
if (!(fsinfo.flags & (
((MKCONSISTENT) ? LFS3_I_MKCONSISTENT : 0)
| ((LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
| ((LOOKGBMAP)
? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1)
: 0)
| ((COMPACTMETA) ? LFS3_I_COMPACTMETA : 0)
| ((CKMETA) ? LFS3_I_CKMETA : 0)
| ((CKDATA) ? LFS3_I_CKDATA : 0)))) {
@@ -2381,24 +2306,6 @@ code = '''
lfs3_trv_close(&lfs3, &trv) => 0;
}
#ifdef LFS3_GBMAP
if (LOOKGBMAP && (fsinfo.flags & LFS3_I_LOOKGBMAP)) {
// we need an explicit traversal for this
lfs3_trv_t trv;
lfs3_trv_open(&lfs3, &trv,
LFS3_T_RDWR | LFS3_T_LOOKGBMAP) => 0;
while (true) {
struct lfs3_tinfo tinfo;
int err = lfs3_trv_read(&lfs3, &trv, &tinfo);
assert(err == 0 || err == LFS3_ERR_NOENT);
if (err == LFS3_ERR_NOENT) {
break;
}
}
lfs3_trv_close(&lfs3, &trv) => 0;
}
#endif
if (COMPACTMETA && (fsinfo.flags & LFS3_I_COMPACTMETA)) {
// we need an explicit traversal for this
lfs3_trv_t trv;
@@ -2439,12 +2346,9 @@ code = '''
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| ((!MKCONSISTENT) ? LFS3_I_MKCONSISTENT : 0)
| ((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
| ((!LOOKGBMAP)
? ((GBMAP)
? (LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1)
& fsinfo.flags)
: 0)
| ((!LOOKAHEAD
&& (!GBMAP || (fsinfo.flags & LFS3_I_LOOKAHEAD)))
? LFS3_I_LOOKAHEAD
: 0)
| ((!COMPACTMETA) ? LFS3_I_COMPACTMETA : 0)
// note ckdata implies ckmeta
@@ -2461,14 +2365,12 @@ code = '''
defines.N = 100
defines.MKCONSISTENT = [false, true]
defines.LOOKAHEAD = [false, true]
defines.LOOKGBMAP = [false, true]
defines.COMPACTMETA = [false, true]
defines.CKMETA = [false, true]
defines.CKDATA = [false, true]
defines.GC_FLAGS = '''
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
| ((LOOKGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_LOOKGBMAP, -1) : 0)
| ((COMPACTMETA) ? LFS3_GC_COMPACTMETA : 0)
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
@@ -2484,7 +2386,6 @@ defines.SIZE = [
'2*BLOCK_SIZE',
'8*BLOCK_SIZE',
]
if = 'GBMAP || !LOOKGBMAP'
ifdef = 'LFS3_GC'
code = '''
lfs3_t lfs3;
@@ -2536,14 +2437,12 @@ code = '''
defines.N = 100
defines.MKCONSISTENT = [false, true]
defines.LOOKAHEAD = [false, true]
defines.LOOKGBMAP = [false, true]
defines.COMPACTMETA = [false, true]
defines.CKMETA = [false, true]
defines.CKDATA = [false, true]
defines.GC_FLAGS = '''
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
| ((LOOKGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_LOOKGBMAP, -1) : 0)
| ((COMPACTMETA) ? LFS3_GC_COMPACTMETA : 0)
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
@@ -2559,7 +2458,6 @@ defines.SIZE = [
'2*BLOCK_SIZE',
'8*BLOCK_SIZE',
]
if = 'GBMAP || !LOOKGBMAP'
ifdef = 'LFS3_GC'
code = '''
lfs3_t lfs3;
@@ -2614,14 +2512,12 @@ code = '''
[cases.test_gc_nospc]
defines.MKCONSISTENT = [false, true]
defines.LOOKAHEAD = [false, true]
defines.LOOKGBMAP = [false, true]
defines.COMPACTMETA = [false, true]
defines.CKMETA = [false, true]
defines.CKDATA = [false, true]
defines.GC_FLAGS = '''
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
| ((LOOKGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_LOOKGBMAP, -1) : 0)
| ((COMPACTMETA) ? LFS3_GC_COMPACTMETA : 0)
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
@@ -2631,7 +2527,6 @@ defines.GC_STEPS = [1, 2, 10, 100, 1000]
# set compactmeta thresh to minimum
defines.GC_COMPACTMETA_THRESH = 'BLOCK_SIZE/2'
defines.SIZE = 'BLOCK_SIZE'
if = 'GBMAP || !LOOKGBMAP'
ifdef = 'LFS3_GC'
code = '''
lfs3_t lfs3;
@@ -2722,7 +2617,6 @@ code = '''
[cases.test_gc_spam_dir_many]
defines.MKCONSISTENT = [false, true]
defines.LOOKAHEAD = [false, true]
defines.LOOKGBMAP = [false, true]
defines.COMPACTMETA = [false, true]
defines.CKMETA = [false, true]
defines.CKDATA = [false, true]
@@ -2730,7 +2624,6 @@ defines.UNCK = [false, true]
defines.GC_FLAGS = '''
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
| ((LOOKGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_LOOKGBMAP, -1) : 0)
| ((COMPACTMETA) ? LFS3_GC_COMPACTMETA : 0)
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
@@ -2739,7 +2632,6 @@ defines.GC_STEPS = [-1, 1, 2, 10, 100, 1000]
# set compactmeta thresh to minimum
defines.GC_COMPACTMETA_THRESH = 'BLOCK_SIZE/2'
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256]
if = 'GBMAP || !LOOKGBMAP'
ifdef = 'LFS3_GC'
code = '''
// test creating directories
@@ -2832,7 +2724,6 @@ code = '''
[cases.test_gc_spam_dir_fuzz]
defines.MKCONSISTENT = [false, true]
defines.LOOKAHEAD = [false, true]
defines.LOOKGBMAP = [false, true]
defines.COMPACTMETA = [false, true]
defines.CKMETA = [false, true]
defines.CKDATA = [false, true]
@@ -2840,7 +2731,6 @@ defines.UNCK = [false, true]
defines.GC_FLAGS = '''
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
| ((LOOKGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_LOOKGBMAP, -1) : 0)
| ((COMPACTMETA) ? LFS3_GC_COMPACTMETA : 0)
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
@@ -2852,7 +2742,6 @@ defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256]
defines.OPS = '2*N'
defines.SEED = 42
fuzz = 'SEED'
if = 'GBMAP || !LOOKGBMAP'
ifdef = 'LFS3_GC'
code = '''
// test fuzz with dirs
@@ -3013,7 +2902,6 @@ code = '''
[cases.test_gc_spam_file_many]
defines.MKCONSISTENT = [false, true]
defines.LOOKAHEAD = [false, true]
defines.LOOKGBMAP = [false, true]
defines.COMPACTMETA = [false, true]
defines.CKMETA = [false, true]
defines.CKDATA = [false, true]
@@ -3021,7 +2909,6 @@ defines.UNCK = [false, true]
defines.GC_FLAGS = '''
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
| ((LOOKGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_LOOKGBMAP, -1) : 0)
| ((COMPACTMETA) ? LFS3_GC_COMPACTMETA : 0)
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
@@ -3039,10 +2926,7 @@ defines.SIZE = [
'2*BLOCK_SIZE',
'4*BLOCK_SIZE',
]
if = [
'(SIZE*N)/BLOCK_SIZE <= 32',
'GBMAP || !LOOKGBMAP',
]
if = '(SIZE*N)/BLOCK_SIZE <= 32'
ifdef = 'LFS3_GC'
code = '''
// test creating files
@@ -3119,7 +3003,6 @@ code = '''
[cases.test_gc_spam_file_fuzz]
defines.MKCONSISTENT = [false, true]
defines.LOOKAHEAD = [false, true]
defines.LOOKGBMAP = [false, true]
defines.COMPACTMETA = [false, true]
defines.CKMETA = [false, true]
defines.CKDATA = [false, true]
@@ -3127,7 +3010,6 @@ defines.UNCK = [false, true]
defines.GC_FLAGS = '''
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
| ((LOOKGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_LOOKGBMAP, -1) : 0)
| ((COMPACTMETA) ? LFS3_GC_COMPACTMETA : 0)
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
@@ -3148,10 +3030,7 @@ defines.SIZE = [
]
defines.SEED = 42
fuzz = 'SEED'
if = [
'(SIZE*N)/BLOCK_SIZE <= 16',
'GBMAP || !LOOKGBMAP',
]
if = '(SIZE*N)/BLOCK_SIZE <= 16'
ifdef = 'LFS3_GC'
code = '''
// test fuzz with files
@@ -3364,7 +3243,6 @@ code = '''
[cases.test_gc_spam_fwrite_fuzz]
defines.MKCONSISTENT = [false, true]
defines.LOOKAHEAD = [false, true]
defines.LOOKGBMAP = [false, true]
defines.COMPACTMETA = [false, true]
defines.CKMETA = [false, true]
defines.CKDATA = [false, true]
@@ -3372,7 +3250,6 @@ defines.UNCK = [false, true]
defines.GC_FLAGS = '''
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
| ((LOOKGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_LOOKGBMAP, -1) : 0)
| ((COMPACTMETA) ? LFS3_GC_COMPACTMETA : 0)
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
@@ -3402,7 +3279,6 @@ if = [
'CHUNK <= SIZE',
# this just saves testing time
'SIZE <= 4*1024*FRAGMENT_SIZE',
'GBMAP || !LOOKGBMAP',
]
ifdef = 'LFS3_GC'
code = '''
@@ -3527,7 +3403,6 @@ code = '''
[cases.test_gc_spam_uz_fuzz]
defines.MKCONSISTENT = [false, true]
defines.LOOKAHEAD = [false, true]
defines.LOOKGBMAP = [false, true]
defines.COMPACTMETA = [false, true]
defines.CKMETA = [false, true]
defines.CKDATA = [false, true]
@@ -3535,7 +3410,6 @@ defines.UNCK = [false, true]
defines.GC_FLAGS = '''
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
| ((LOOKGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_LOOKGBMAP, -1) : 0)
| ((COMPACTMETA) ? LFS3_GC_COMPACTMETA : 0)
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
@@ -3558,10 +3432,7 @@ defines.SIZE = [
]
defines.SEED = 42
fuzz = 'SEED'
if = [
'(SIZE*N)/BLOCK_SIZE <= 16',
'GBMAP || !LOOKGBMAP',
]
if = '(SIZE*N)/BLOCK_SIZE <= 16'
ifdef = 'LFS3_GC'
code = '''
// test with uncreats, zombies, etc
@@ -3983,7 +3854,6 @@ code = '''
[cases.test_gc_spam_uzd_fuzz]
defines.MKCONSISTENT = [false, true]
defines.LOOKAHEAD = [false, true]
defines.LOOKGBMAP = [false, true]
defines.COMPACTMETA = [false, true]
defines.CKMETA = [false, true]
defines.CKDATA = [false, true]
@@ -3991,7 +3861,6 @@ defines.UNCK = [false, true]
defines.GC_FLAGS = '''
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
| ((LOOKGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_LOOKGBMAP, -1) : 0)
| ((COMPACTMETA) ? LFS3_GC_COMPACTMETA : 0)
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
@@ -4014,10 +3883,7 @@ defines.SIZE = [
]
defines.SEED = 42
fuzz = 'SEED'
if = [
'(SIZE*N)/BLOCK_SIZE <= 16',
'GBMAP || !LOOKGBMAP',
]
if = '(SIZE*N)/BLOCK_SIZE <= 16'
ifdef = 'LFS3_GC'
code = '''
// test with uncreats, zombies, dirs, etc
+190 -89
View File
@@ -1,12 +1,23 @@
# Advanced mount tests
after = ['test_mtree', 'test_trvs']
# Test both with and without the gbmap if available
defines.GBMAP = [false, true]
if = '''
LFS3_IFDEF_YES_GBMAP(
GBMAP,
LFS3_IFDEF_GBMAP(true, !GBMAP))
'''
# test we can mount
[cases.test_mount_simple]
code = '''
lfs3_t lfs3;
lfs3_format(&lfs3, LFS3_F_RDWR, CFG) => 0;
lfs3_format(&lfs3,
LFS3_F_RDWR
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_F_GBMAP, -1) : 0),
CFG) => 0;
lfs3_mount(&lfs3, LFS3_M_RDWR, CFG) => 0;
lfs3_unmount(&lfs3) => 0;
'''
@@ -25,7 +36,6 @@ defines.CKMETAPARITY = [false, true]
defines.CKDATACKSUMS = [false, true]
defines.MKCONSISTENT = [false, true]
defines.LOOKAHEAD = [false, true]
defines.LOOKGBMAP = [false, true]
defines.COMPACTMETA = [false, true]
defines.CKMETA = [false, true]
defines.CKDATA = [false, true]
@@ -38,13 +48,14 @@ if = [
'LFS3_IFDEF_CKDATACKSUMS(true, !CKDATACKSUMS)',
'!RDONLY || !MKCONSISTENT',
'!RDONLY || !LOOKAHEAD',
'LFS3_IFDEF_YES_GBMAP(true, !LOOKGBMAP)',
'!RDONLY || !LOOKGBMAP',
'!RDONLY || !COMPACTMETA',
]
code = '''
lfs3_t lfs3;
lfs3_format(&lfs3, LFS3_F_RDWR, CFG) => 0;
lfs3_format(&lfs3,
LFS3_F_RDWR
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_F_GBMAP, -1) : 0),
CFG) => 0;
lfs3_mount(&lfs3,
((RDONLY) ? LFS3_M_RDONLY : LFS3_M_RDWR)
| ((FLUSH) ? LFS3_M_FLUSH : 0)
@@ -61,9 +72,6 @@ code = '''
: 0)
| ((MKCONSISTENT) ? LFS3_M_MKCONSISTENT : 0)
| ((LOOKAHEAD) ? LFS3_M_LOOKAHEAD : 0)
| ((LOOKGBMAP)
? LFS3_IFDEF_GBMAP(LFS3_M_LOOKGBMAP, -1)
: 0)
| ((COMPACTMETA) ? LFS3_M_COMPACTMETA : 0)
| ((CKMETA) ? LFS3_M_CKMETA : 0)
| ((CKDATA) ? LFS3_M_CKDATA : 0),
@@ -87,12 +95,12 @@ code = '''
? LFS3_IFDEF_CKDATACKSUMS(LFS3_I_CKDATACKSUMS, -1)
: 0)
| ((!MKCONSISTENT) ? LFS3_I_MKCONSISTENT : 0)
| ((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
| ((!LOOKAHEAD && !GBMAP) ? LFS3_I_LOOKAHEAD : 0)
| ((!COMPACTMETA) ? LFS3_I_COMPACTMETA : 0)
// note ckdata implies ckmeta
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
| ((!CKDATA) ? LFS3_I_CKDATA : 0)
| LFS3_IFDEF_YES_GBMAP(LFS3_I_GBMAP, 0)));
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_GBMAP, -1) : 0)));
lfs3_unmount(&lfs3) => 0;
'''
@@ -109,11 +117,9 @@ defines.CKMETAPARITY = [false, true]
defines.CKDATACKSUMS = [false, true]
defines.MKCONSISTENT = [false, true]
defines.LOOKAHEAD = [false, true]
defines.LOOKGBMAP = [false, true]
defines.COMPACTMETA = [false, true]
defines.CKMETA = [false, true]
defines.CKDATA = [false, true]
defines.GBMAP = [false, true]
if = [
'LFS3_IFDEF_YES_REVDBG(REVDBG, LFS3_IFDEF_REVDBG(true, !REVDBG))',
'LFS3_IFDEF_YES_REVNOISE(REVNOISE, LFS3_IFDEF_REVNOISE(true, !REVNOISE))',
@@ -121,8 +127,6 @@ if = [
'LFS3_IFDEF_CKFETCHES(true, !CKFETCHES)',
'LFS3_IFDEF_CKMETAPARITY(true, !CKMETAPARITY)',
'LFS3_IFDEF_CKDATACKSUMS(true, !CKDATACKSUMS)',
'LFS3_IFDEF_YES_GBMAP(true, !LOOKGBMAP)',
'LFS3_IFDEF_GBMAP(true, !GBMAP)',
]
code = '''
lfs3_t lfs3;
@@ -140,9 +144,6 @@ code = '''
: 0)
| ((MKCONSISTENT) ? LFS3_F_MKCONSISTENT : 0)
| ((LOOKAHEAD) ? LFS3_F_LOOKAHEAD : 0)
| ((LOOKGBMAP)
? LFS3_IFDEF_GBMAP(LFS3_F_LOOKGBMAP, -1)
: 0)
| ((COMPACTMETA) ? LFS3_F_COMPACTMETA : 0)
| ((CKMETA) ? LFS3_F_CKMETA : 0)
| ((CKDATA) ? LFS3_F_CKDATA : 0)
@@ -157,13 +158,11 @@ code = '''
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_MKCONSISTENT
| LFS3_I_LOOKAHEAD
| ((!GBMAP) ? LFS3_I_LOOKAHEAD : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
| LFS3_IFDEF_YES_GBMAP(
LFS3_I_GBMAP,
(GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_GBMAP, -1) : 0)));
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_GBMAP, -1) : 0)));
lfs3_unmount(&lfs3) => 0;
'''
@@ -171,14 +170,20 @@ code = '''
# test that on-mount traversals do what they say they do
[cases.test_mount_t_relookahead]
[cases.test_mount_t_lookahead]
defines.CKMETA = [false, true]
defines.CKDATA = [false, true]
code = '''
lfs3_t lfs3;
lfs3_format(&lfs3, LFS3_F_RDWR, CFG) => 0;
lfs3_format(&lfs3,
LFS3_F_RDWR
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_F_GBMAP, -1) : 0),
CFG) => 0;
// by default we need a lookahead scan
//
// unless we have a gbmap, the gbmap is persistent so usually
// _doesn't_ need a lookahead scan
lfs3_mount(&lfs3, LFS3_M_RDWR, CFG) => 0;
struct lfs3_fsinfo fsinfo;
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
@@ -186,11 +191,11 @@ code = '''
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_MKCONSISTENT
| LFS3_I_LOOKAHEAD
| ((!GBMAP) ? LFS3_I_LOOKAHEAD : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
| LFS3_IFDEF_YES_GBMAP(LFS3_I_GBMAP, 0)));
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_GBMAP, -1) : 0)));
lfs3_unmount(&lfs3) => 0;
// with LFS3_M_LOOKAHEAD, mount performs a lookahead scan
@@ -209,12 +214,11 @@ code = '''
// note ckdata implies ckmeta
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
| ((!CKDATA) ? LFS3_I_CKDATA : 0)
| LFS3_IFDEF_YES_GBMAP(LFS3_I_GBMAP, 0)));
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_GBMAP, -1) : 0)));
lfs3_unmount(&lfs3) => 0;
'''
[cases.test_mount_t_regbmap]
ifdef = 'LFS3_GBMAP'
[cases.test_mount_t_lookgbmap]
defines.CKMETA = [false, true]
defines.CKDATA = [false, true]
defines.SIZE = [
@@ -223,9 +227,14 @@ defines.SIZE = [
'2*BLOCK_SIZE',
'8*BLOCK_SIZE',
]
ifdef = 'LFS3_GBMAP'
if = 'GBMAP'
code = '''
lfs3_t lfs3;
lfs3_format(&lfs3, LFS3_F_RDWR | LFS3_F_GBMAP, CFG) => 0;
lfs3_format(&lfs3,
LFS3_F_RDWR
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_F_GBMAP, -1) : 0),
CFG) => 0;
uint32_t prng = 42;
@@ -237,11 +246,10 @@ code = '''
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_MKCONSISTENT
| LFS3_I_LOOKAHEAD
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
| LFS3_IFDEF_GBMAP(LFS3_I_GBMAP, 0)));
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_GBMAP, -1) : 0)));
// write to a file
lfs3_file_t file;
lfs3_file_open(&lfs3, &file, "jellyfish",
@@ -262,18 +270,16 @@ code = '''
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_MKCONSISTENT
| LFS3_I_LOOKAHEAD
| LFS3_I_LOOKGBMAP
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
| LFS3_IFDEF_GBMAP(LFS3_I_GBMAP, 0)));
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_GBMAP, -1) : 0)));
lfs3_unmount(&lfs3) => 0;
// with LFS3_M_LOOKGBMAP, mount performs a gbmap repop
// with LFS3_M_LOOKAHEAD, mount rebuild the gbmap
lfs3_mount(&lfs3,
LFS3_M_RDWR
| LFS3_M_LOOKAHEAD
| LFS3_M_LOOKGBMAP
| ((CKMETA) ? LFS3_M_CKMETA : 0)
| ((CKDATA) ? LFS3_M_CKDATA : 0),
CFG) => 0;
@@ -286,7 +292,7 @@ code = '''
// note ckdata implies ckmeta
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
| ((!CKDATA) ? LFS3_I_CKDATA : 0)
| LFS3_IFDEF_GBMAP(LFS3_I_GBMAP, 0)));
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_GBMAP, -1) : 0)));
lfs3_unmount(&lfs3) => 0;
'''
@@ -306,7 +312,10 @@ defines.SIZE = [
defines.GC_COMPACTMETA_THRESH = 'BLOCK_SIZE/2'
code = '''
lfs3_t lfs3;
lfs3_format(&lfs3, LFS3_F_RDWR, CFG) => 0;
lfs3_format(&lfs3,
LFS3_F_RDWR
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_F_GBMAP, -1) : 0),
CFG) => 0;
uint32_t prng = 42;
@@ -340,14 +349,13 @@ code = '''
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_MKCONSISTENT
| LFS3_I_LOOKAHEAD
| LFS3_IFDEF_YES_GBMAP(
(SIZE >= BLOCK_SIZE/4) ? LFS3_I_LOOKGBMAP : 0,
0)
| ((!GBMAP || SIZE >= BLOCK_SIZE/4)
? LFS3_I_LOOKAHEAD
: 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
| LFS3_IFDEF_YES_GBMAP(LFS3_I_GBMAP, 0)));
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_GBMAP, -1) : 0)));
lfs3_unmount(&lfs3) => 0;
// with LFS3_M_COMPACTMETA, mount compacts any uncompacted blocks
@@ -363,14 +371,13 @@ code = '''
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_MKCONSISTENT
| ((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
| LFS3_IFDEF_YES_GBMAP(
(SIZE >= BLOCK_SIZE/4) ? LFS3_I_LOOKGBMAP : 0,
0)
| ((!LOOKAHEAD && (!GBMAP || SIZE >= BLOCK_SIZE/4))
? LFS3_I_LOOKAHEAD
: 0)
// note ckdata implies ckmeta
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
| ((!CKDATA) ? LFS3_I_CKDATA : 0)
| LFS3_IFDEF_YES_GBMAP(LFS3_I_GBMAP, 0)));
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_GBMAP, -1) : 0)));
// mdir should have been compacted
lfs3_file_open(&lfs3, &file, "jellyfish", LFS3_O_RDONLY) => 0;
@@ -396,7 +403,10 @@ defines.SIZE = 'FCACHE_SIZE/2'
defines.ORPHANS = [0, 1, 2, 3, 100]
code = '''
lfs3_t lfs3;
lfs3_format(&lfs3, LFS3_F_RDWR, CFG) => 0;
lfs3_format(&lfs3,
LFS3_F_RDWR
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_F_GBMAP, -1) : 0),
CFG) => 0;
uint32_t prng = 42;
@@ -454,14 +464,13 @@ code = '''
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_MKCONSISTENT
| LFS3_I_LOOKAHEAD
| LFS3_IFDEF_YES_GBMAP(
(ORPHANS >= 100) ? LFS3_I_LOOKGBMAP : 0,
0)
| ((!GBMAP || ORPHANS >= 100)
? LFS3_I_LOOKAHEAD
: 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
| LFS3_IFDEF_YES_GBMAP(LFS3_I_GBMAP, 0)));
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_GBMAP, -1) : 0)));
lfs3_unmount(&lfs3) => 0;
// with LFS3_M_MKCONSISTENT, mount cleans up orphans eagerly
@@ -477,15 +486,14 @@ code = '''
assert(fsinfo.flags == (
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| ((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
| LFS3_IFDEF_YES_GBMAP(
(ORPHANS >= 100) ? LFS3_I_LOOKGBMAP : 0,
0)
| ((!LOOKAHEAD && (!GBMAP || ORPHANS >= 100))
? LFS3_I_LOOKAHEAD
: 0)
| ((!COMPACTMETA) ? LFS3_I_COMPACTMETA : 0)
// note ckdata implies ckmeta
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
| ((!CKDATA) ? LFS3_I_CKDATA : 0)
| LFS3_IFDEF_YES_GBMAP(LFS3_I_GBMAP, 0)));
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_GBMAP, -1) : 0)));
// check we can still read the files
lfs3_file_open(&lfs3, &file, "cuttlefish", LFS3_O_RDONLY) => 0;
@@ -524,7 +532,10 @@ code = '''
assert(i < 2*BLOCK_COUNT);
lfs3_t lfs3;
lfs3_format(&lfs3, LFS3_F_RDWR, CFG) => 0;
lfs3_format(&lfs3,
LFS3_F_RDWR
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_F_GBMAP, -1) : 0),
CFG) => 0;
lfs3_mount(&lfs3, LFS3_M_RDWR, CFG) => 0;
// create an interesting filesystem
@@ -613,7 +624,10 @@ code = '''
assert(i < 2*BLOCK_COUNT);
lfs3_t lfs3;
lfs3_format(&lfs3, LFS3_F_RDWR, CFG) => 0;
lfs3_format(&lfs3,
LFS3_F_RDWR
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_F_GBMAP, -1) : 0),
CFG) => 0;
lfs3_mount(&lfs3, LFS3_M_RDWR, CFG) => 0;
// create an interesting filesystem
@@ -696,7 +710,10 @@ in = 'lfs3.c'
code = '''
// create a superblock
lfs3_t lfs3;
lfs3_format(&lfs3, LFS3_F_RDWR, CFG) => 0;
lfs3_format(&lfs3,
LFS3_F_RDWR
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_F_GBMAP, -1) : 0),
CFG) => 0;
// delete the magic string
//
@@ -719,7 +736,10 @@ in = 'lfs3.c'
code = '''
// create a superblock
lfs3_t lfs3;
lfs3_format(&lfs3, LFS3_F_RDWR, CFG) => 0;
lfs3_format(&lfs3,
LFS3_F_RDWR
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_F_GBMAP, -1) : 0),
CFG) => 0;
// tweak the magic string
//
@@ -743,7 +763,10 @@ in = 'lfs3.c'
code = '''
// create a superblock
lfs3_t lfs3;
lfs3_format(&lfs3, LFS3_F_RDWR, CFG) => 0;
lfs3_format(&lfs3,
LFS3_F_RDWR
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_F_GBMAP, -1) : 0),
CFG) => 0;
// bump the major version
//
@@ -769,7 +792,10 @@ in = 'lfs3.c'
code = '''
// create a superblock
lfs3_t lfs3;
lfs3_format(&lfs3, LFS3_F_RDWR, CFG) => 0;
lfs3_format(&lfs3,
LFS3_F_RDWR
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_F_GBMAP, -1) : 0),
CFG) => 0;
// bump the minor version
//
@@ -795,7 +821,10 @@ in = 'lfs3.c'
code = '''
// create a superblock
lfs3_t lfs3;
lfs3_format(&lfs3, LFS3_F_RDWR, CFG) => 0;
lfs3_format(&lfs3,
LFS3_F_RDWR
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_F_GBMAP, -1) : 0),
CFG) => 0;
// set the nonstandard rcompat flag, this will always be incompatible
// with standard littlefs
@@ -822,7 +851,10 @@ in = 'lfs3.c'
code = '''
// create a superblock
lfs3_t lfs3;
lfs3_format(&lfs3, LFS3_F_RDWR, CFG) => 0;
lfs3_format(&lfs3,
LFS3_F_RDWR
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_F_GBMAP, -1) : 0),
CFG) => 0;
// set the nonstandard rcompat flag, this will always be incompatible
// with standard littlefs
@@ -852,7 +884,10 @@ in = 'lfs3.c'
code = '''
// create a superblock
lfs3_t lfs3;
lfs3_format(&lfs3, LFS3_F_RDWR, CFG) => 0;
lfs3_format(&lfs3,
LFS3_F_RDWR
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_F_GBMAP, -1) : 0),
CFG) => 0;
// set the nonstandard ocompat flag, this will always be incompatible
// with standard littlefs
@@ -881,7 +916,10 @@ in = 'lfs3.c'
code = '''
// create a superblock
lfs3_t lfs3;
lfs3_format(&lfs3, LFS3_F_RDWR, CFG) => 0;
lfs3_format(&lfs3,
LFS3_F_RDWR
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_F_GBMAP, -1) : 0),
CFG) => 0;
// set the rdonly flag, this prevents writing from a littlefs image
//
@@ -910,7 +948,10 @@ in = 'lfs3.c'
code = '''
// create a superblock
lfs3_t lfs3;
lfs3_format(&lfs3, LFS3_F_RDWR, CFG) => 0;
lfs3_format(&lfs3,
LFS3_F_RDWR
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_F_GBMAP, -1) : 0),
CFG) => 0;
// set the wronly flag, this prevents reading from a littlefs image
//
@@ -938,7 +979,10 @@ in = 'lfs3.c'
code = '''
// create a superblock
lfs3_t lfs3;
lfs3_format(&lfs3, LFS3_F_RDWR, CFG) => 0;
lfs3_format(&lfs3,
LFS3_F_RDWR
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_F_GBMAP, -1) : 0),
CFG) => 0;
// set a really far rcompat flag
//
@@ -969,7 +1013,10 @@ in = 'lfs3.c'
code = '''
// create a superblock
lfs3_t lfs3;
lfs3_format(&lfs3, LFS3_F_RDWR, CFG) => 0;
lfs3_format(&lfs3,
LFS3_F_RDWR
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_F_GBMAP, -1) : 0),
CFG) => 0;
uint8_t flags[9] = {0};
flags[FLAG / 8] |= 1 << (FLAG % 8);
@@ -1006,7 +1053,10 @@ in = 'lfs3.c'
code = '''
// create a superblock
lfs3_t lfs3;
lfs3_format(&lfs3, LFS3_F_RDWR, CFG) => 0;
lfs3_format(&lfs3,
LFS3_F_RDWR
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_F_GBMAP, -1) : 0),
CFG) => 0;
// set a really far ocompat flag
//
@@ -1038,7 +1088,10 @@ in = 'lfs3.c'
code = '''
// create a superblock
lfs3_t lfs3;
lfs3_format(&lfs3, LFS3_F_RDWR, CFG) => 0;
lfs3_format(&lfs3,
LFS3_F_RDWR
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_F_GBMAP, -1) : 0),
CFG) => 0;
// set a really far rcompat flag
//
@@ -1069,7 +1122,10 @@ in = 'lfs3.c'
code = '''
// create a superblock
lfs3_t lfs3;
lfs3_format(&lfs3, LFS3_F_RDWR, CFG) => 0;
lfs3_format(&lfs3,
LFS3_F_RDWR
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_F_GBMAP, -1) : 0),
CFG) => 0;
uint8_t flags[9] = {0};
flags[FLAG / 8] |= 1 << (FLAG % 8);
@@ -1103,7 +1159,10 @@ in = 'lfs3.c'
code = '''
// create a superblock
lfs3_t lfs3;
lfs3_format(&lfs3, LFS3_F_RDWR, CFG) => 0;
lfs3_format(&lfs3,
LFS3_F_RDWR
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_F_GBMAP, -1) : 0),
CFG) => 0;
// set a really far ocompat flag
//
@@ -1134,7 +1193,10 @@ in = 'lfs3.c'
code = '''
// create a superblock
lfs3_t lfs3;
lfs3_format(&lfs3, LFS3_F_RDWR, CFG) => 0;
lfs3_format(&lfs3,
LFS3_F_RDWR
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_F_GBMAP, -1) : 0),
CFG) => 0;
// set an incompatible block size
//
@@ -1161,7 +1223,10 @@ in = 'lfs3.c'
code = '''
// create a superblock
lfs3_t lfs3;
lfs3_format(&lfs3, LFS3_F_RDWR, CFG) => 0;
lfs3_format(&lfs3,
LFS3_F_RDWR
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_F_GBMAP, -1) : 0),
CFG) => 0;
// set an incompatible block count
//
@@ -1188,7 +1253,10 @@ in = 'lfs3.c'
code = '''
// create a superblock
lfs3_t lfs3;
lfs3_format(&lfs3, LFS3_F_RDWR, CFG) => 0;
lfs3_format(&lfs3,
LFS3_F_RDWR
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_F_GBMAP, -1) : 0),
CFG) => 0;
// set an incompatible block size
//
@@ -1212,7 +1280,10 @@ in = 'lfs3.c'
code = '''
// create a superblock
lfs3_t lfs3;
lfs3_format(&lfs3, LFS3_F_RDWR, CFG) => 0;
lfs3_format(&lfs3,
LFS3_F_RDWR
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_F_GBMAP, -1) : 0),
CFG) => 0;
// set an incompatible file limit
//
@@ -1249,7 +1320,10 @@ in = 'lfs3.c'
code = '''
// create a superblock
lfs3_t lfs3;
lfs3_format(&lfs3, LFS3_F_RDWR, CFG) => 0;
lfs3_format(&lfs3,
LFS3_F_RDWR
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_F_GBMAP, -1) : 0),
CFG) => 0;
// create an unknown config
lfs3_mount(&lfs3, LFS3_M_RDWR, CFG) => 0;
@@ -1271,7 +1345,10 @@ in = 'lfs3.c'
code = '''
// create a superblock
lfs3_t lfs3;
lfs3_format(&lfs3, LFS3_F_RDWR, CFG) => 0;
lfs3_format(&lfs3,
LFS3_F_RDWR
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_F_GBMAP, -1) : 0),
CFG) => 0;
// create some files
lfs3_mount(&lfs3, LFS3_M_RDWR, CFG) => 0;
@@ -1359,7 +1436,10 @@ in = 'lfs3.c'
code = '''
// create a superblock
lfs3_t lfs3;
lfs3_format(&lfs3, LFS3_F_RDWR, CFG) => 0;
lfs3_format(&lfs3,
LFS3_F_RDWR
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_F_GBMAP, -1) : 0),
CFG) => 0;
// create some files
lfs3_mount(&lfs3, LFS3_M_RDWR, CFG) => 0;
@@ -1466,7 +1546,10 @@ in = 'lfs3.c'
code = '''
// create a superblock
lfs3_t lfs3;
lfs3_format(&lfs3, LFS3_F_RDWR, CFG) => 0;
lfs3_format(&lfs3,
LFS3_F_RDWR
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_F_GBMAP, -1) : 0),
CFG) => 0;
// create some files
lfs3_mount(&lfs3, LFS3_M_RDWR, CFG) => 0;
@@ -1576,7 +1659,10 @@ in = 'lfs3.c'
code = '''
// create a superblock
lfs3_t lfs3;
lfs3_format(&lfs3, LFS3_F_RDWR, CFG) => 0;
lfs3_format(&lfs3,
LFS3_F_RDWR
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_F_GBMAP, -1) : 0),
CFG) => 0;
// create some files
lfs3_mount(&lfs3, LFS3_M_RDWR, CFG) => 0;
@@ -1686,7 +1772,10 @@ in = 'lfs3.c'
code = '''
// create a superblock
lfs3_t lfs3;
lfs3_format(&lfs3, LFS3_F_RDWR, CFG) => 0;
lfs3_format(&lfs3,
LFS3_F_RDWR
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_F_GBMAP, -1) : 0),
CFG) => 0;
// create some files
lfs3_mount(&lfs3, LFS3_M_RDWR, CFG) => 0;
@@ -1805,7 +1894,10 @@ in = 'lfs3.c'
code = '''
// create a superblock
lfs3_t lfs3;
lfs3_format(&lfs3, LFS3_F_RDWR, CFG) => 0;
lfs3_format(&lfs3,
LFS3_F_RDWR
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_F_GBMAP, -1) : 0),
CFG) => 0;
// create some files
lfs3_mount(&lfs3, LFS3_M_RDWR, CFG) => 0;
@@ -1919,7 +2011,10 @@ in = 'lfs3.c'
code = '''
// create a superblock
lfs3_t lfs3;
lfs3_format(&lfs3, LFS3_F_RDWR, CFG) => 0;
lfs3_format(&lfs3,
LFS3_F_RDWR
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_F_GBMAP, -1) : 0),
CFG) => 0;
// create some files
lfs3_mount(&lfs3, LFS3_M_RDWR, CFG) => 0;
@@ -2029,7 +2124,10 @@ in = 'lfs3.c'
code = '''
// create a superblock
lfs3_t lfs3;
lfs3_format(&lfs3, LFS3_F_RDWR, CFG) => 0;
lfs3_format(&lfs3,
LFS3_F_RDWR
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_F_GBMAP, -1) : 0),
CFG) => 0;
// create some files
lfs3_mount(&lfs3, LFS3_M_RDWR, CFG) => 0;
@@ -2150,7 +2248,10 @@ in = 'lfs3.c'
code = '''
// create a superblock
lfs3_t lfs3;
lfs3_format(&lfs3, LFS3_F_RDWR, CFG) => 0;
lfs3_format(&lfs3,
LFS3_F_RDWR
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_F_GBMAP, -1) : 0),
CFG) => 0;
// with some files
lfs3_mount(&lfs3, LFS3_M_RDWR, CFG) => 0;
+46 -158
View File
@@ -20,11 +20,9 @@ if = '''
[cases.test_trvs_simple]
defines.MKCONSISTENT = [false, true]
defines.LOOKAHEAD = [false, true]
defines.LOOKGBMAP = [false, true]
defines.COMPACTMETA = [false, true]
defines.CKMETA = [false, true]
defines.CKDATA = [false, true]
if = 'GBMAP || !LOOKGBMAP'
code = '''
lfs3_t lfs3;
lfs3_format(&lfs3,
@@ -39,9 +37,6 @@ code = '''
LFS3_T_RDWR
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
| ((LOOKGBMAP)
? LFS3_IFDEF_GBMAP(LFS3_T_LOOKGBMAP, -1)
: 0)
| ((COMPACTMETA) ? LFS3_T_COMPACTMETA : 0)
| ((CKMETA) ? LFS3_T_CKMETA : 0)
| ((CKDATA) ? LFS3_T_CKDATA : 0)) => 0;
@@ -85,9 +80,6 @@ code = '''
LFS3_T_RDWR
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
| ((LOOKGBMAP)
? LFS3_IFDEF_GBMAP(LFS3_T_LOOKGBMAP, -1)
: 0)
| ((COMPACTMETA) ? LFS3_T_COMPACTMETA : 0)
| ((CKMETA) ? LFS3_T_CKMETA : 0)
| ((CKDATA) ? LFS3_T_CKDATA : 0)) => 0;
@@ -129,11 +121,9 @@ code = '''
[cases.test_trvs_idempotent]
defines.MKCONSISTENT = [false, true]
defines.LOOKAHEAD = [false, true]
defines.LOOKGBMAP = [false, true]
defines.COMPACTMETA = [false, true]
defines.CKMETA = [false, true]
defines.CKDATA = [false, true]
if = 'GBMAP || !LOOKGBMAP'
code = '''
lfs3_t lfs3;
lfs3_format(&lfs3,
@@ -148,9 +138,6 @@ code = '''
LFS3_T_RDWR
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
| ((LOOKGBMAP)
? LFS3_IFDEF_GBMAP(LFS3_T_LOOKGBMAP, -1)
: 0)
| ((COMPACTMETA) ? LFS3_T_COMPACTMETA : 0)
| ((CKMETA) ? LFS3_T_CKMETA : 0)
| ((CKDATA) ? LFS3_T_CKDATA : 0)) => 0;
@@ -1777,11 +1764,9 @@ done:;
[cases.test_trvs_flags]
defines.MKCONSISTENT = [false, true]
defines.LOOKAHEAD = [false, true]
defines.LOOKGBMAP = [false, true]
defines.COMPACTMETA = [false, true]
defines.CKMETA = [false, true]
defines.CKDATA = [false, true]
if = 'GBMAP || !LOOKGBMAP'
code = '''
lfs3_t lfs3;
lfs3_format(&lfs3,
@@ -1797,7 +1782,7 @@ code = '''
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_MKCONSISTENT
| LFS3_I_LOOKAHEAD
| ((!GBMAP) ? LFS3_I_LOOKAHEAD : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -1809,9 +1794,6 @@ code = '''
LFS3_T_RDWR
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
| ((LOOKGBMAP)
? LFS3_IFDEF_GBMAP(LFS3_T_LOOKGBMAP, -1)
: 0)
| ((COMPACTMETA) ? LFS3_T_COMPACTMETA : 0)
| ((CKMETA) ? LFS3_T_CKMETA : 0)
| ((CKDATA) ? LFS3_T_CKDATA : 0)) => 0;
@@ -1837,7 +1819,7 @@ code = '''
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| ((!MKCONSISTENT) ? LFS3_I_MKCONSISTENT : 0)
| ((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
| ((!LOOKAHEAD && !GBMAP) ? LFS3_I_LOOKAHEAD : 0)
| ((!COMPACTMETA) ? LFS3_I_COMPACTMETA : 0)
// note ckdata implies ckmeta
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
@@ -1937,7 +1919,7 @@ done:;
assert(fsinfo.flags == (
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((!GBMAP) ? LFS3_I_LOOKAHEAD : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -2012,7 +1994,7 @@ code = '''
assert(fsinfo.flags == (
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((!GBMAP) ? LFS3_I_LOOKAHEAD : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -2045,7 +2027,7 @@ code = '''
assert(fsinfo.flags == (
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((!GBMAP) ? LFS3_I_LOOKAHEAD : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -2136,7 +2118,7 @@ done:;
assert(fsinfo.flags == (
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((!GBMAP) ? LFS3_I_LOOKAHEAD : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -2231,7 +2213,7 @@ done:;
assert(fsinfo.flags == (
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((!GBMAP) ? LFS3_I_LOOKAHEAD : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -2334,7 +2316,7 @@ done:;
assert(fsinfo.flags == (
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((!GBMAP) ? LFS3_I_LOOKAHEAD : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -2418,9 +2400,8 @@ code = '''
assert(fsinfo.flags == (
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((GBMAP && SIZE >= BLOCK_SIZE/4)
? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1)
| ((!GBMAP || SIZE >= BLOCK_SIZE/4)
? LFS3_I_LOOKAHEAD
: 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
@@ -2518,17 +2499,18 @@ code = '''
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
// ok we might've updated lookahead if write stayed in
// cache
| ((!LOOKAHEAD || SIZE > FCACHE_SIZE || SYNC)
? LFS3_I_LOOKAHEAD : 0)
| ((GBMAP && SIZE >= BLOCK_SIZE/4)
? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1)
| (((!LOOKAHEAD || SIZE > FCACHE_SIZE || SYNC)
&& (!GBMAP || SIZE >= BLOCK_SIZE/4))
? LFS3_I_LOOKAHEAD
: 0)
| LFS3_I_COMPACTMETA
// and maybe ckmeta/ckdata, note ckdata implies ckmeta
| (((!CKMETA && !CKDATA) || SIZE > FCACHE_SIZE || SYNC)
? LFS3_I_CKMETA : 0)
? LFS3_I_CKMETA
: 0)
| ((!CKDATA || SIZE > FCACHE_SIZE || SYNC)
? LFS3_I_CKDATA : 0)
? LFS3_I_CKDATA
: 0)
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_GBMAP, -1) : 0)));
// check the file contents
@@ -2640,7 +2622,7 @@ done:;
assert(fsinfo.flags == (
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((!GBMAP) ? LFS3_I_LOOKAHEAD : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -2773,7 +2755,6 @@ done:;
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -2896,7 +2877,6 @@ done:;
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -3003,7 +2983,7 @@ done:;
assert(fsinfo.flags == (
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((!GBMAP) ? LFS3_I_LOOKAHEAD : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -3138,7 +3118,6 @@ done:;
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -3263,7 +3242,6 @@ done:;
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -3383,7 +3361,7 @@ done:;
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| ((DESYNC) ? LFS3_I_MKCONSISTENT : 0)
| ((!(LOOKAHEAD && DESYNC)) ? LFS3_I_LOOKAHEAD : 0)
| ((!(LOOKAHEAD && DESYNC) && !GBMAP) ? LFS3_I_LOOKAHEAD : 0)
| LFS3_I_COMPACTMETA
// note ckdata implies ckmeta
| ((!(CKMETA && DESYNC) && !(CKDATA && DESYNC))
@@ -3529,7 +3507,6 @@ done:;
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| ((DESYNC) ? LFS3_I_MKCONSISTENT : 0)
| ((!(LOOKAHEAD && DESYNC)) ? LFS3_I_LOOKAHEAD : 0)
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
| LFS3_I_COMPACTMETA
// note ckdata implies ckmeta
| ((!(CKMETA && DESYNC) && !(CKDATA && DESYNC))
@@ -3665,7 +3642,6 @@ done:;
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| ((DESYNC) ? LFS3_I_MKCONSISTENT : 0)
| ((!(LOOKAHEAD && DESYNC)) ? LFS3_I_LOOKAHEAD : 0)
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
| LFS3_I_COMPACTMETA
// note ckdata implies ckmeta
| ((!(CKMETA && DESYNC) && !(CKDATA && DESYNC))
@@ -3787,7 +3763,6 @@ done:;
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| ((DESYNC) ? LFS3_I_MKCONSISTENT : 0)
| ((!(LOOKAHEAD && DESYNC)) ? LFS3_I_LOOKAHEAD : 0)
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
| LFS3_I_COMPACTMETA
// note ckdata implies ckmeta
| ((!(CKMETA && DESYNC) && !(CKDATA && DESYNC))
@@ -3911,7 +3886,6 @@ done:;
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -4037,7 +4011,6 @@ done:;
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -4166,7 +4139,6 @@ done:;
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -4308,7 +4280,6 @@ done:;
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -4450,7 +4421,6 @@ done:;
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -4572,7 +4542,6 @@ done:;
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -4695,7 +4664,6 @@ done:;
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -4831,7 +4799,6 @@ done:;
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -4968,7 +4935,6 @@ done:;
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -5159,7 +5125,6 @@ done:;
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -5366,7 +5331,6 @@ done:;
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -5568,7 +5532,6 @@ done:;
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -5767,7 +5730,6 @@ done:;
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -5972,7 +5934,6 @@ done:;
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -6182,7 +6143,6 @@ done:;
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -6397,7 +6357,6 @@ done:;
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -6470,7 +6429,7 @@ code = '''
assert(fsinfo.flags == (
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((!GBMAP) ? LFS3_I_LOOKAHEAD : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -6508,7 +6467,7 @@ code = '''
assert(fsinfo.flags == (
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((!GBMAP) ? LFS3_I_LOOKAHEAD : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -6533,7 +6492,7 @@ code = '''
assert(fsinfo.flags == (
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| ((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
| ((!LOOKAHEAD && !GBMAP) ? LFS3_I_LOOKAHEAD : 0)
// note ckdata implies ckmeta
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
| ((!CKDATA) ? LFS3_I_CKDATA : 0)
@@ -6620,7 +6579,6 @@ code = '''
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -6667,7 +6625,6 @@ code = '''
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -6695,7 +6652,6 @@ code = '''
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| ((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
// note ckdata implies ckmeta
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
| ((!CKDATA) ? LFS3_I_CKDATA : 0)
@@ -6763,7 +6719,7 @@ code = '''
assert(fsinfo.flags == (
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((!GBMAP) ? LFS3_I_LOOKAHEAD : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -6804,7 +6760,6 @@ code = '''
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -6830,7 +6785,6 @@ code = '''
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| ((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
// note ckdata implies ckmeta
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
| ((!CKDATA) ? LFS3_I_CKDATA : 0)
@@ -6925,7 +6879,7 @@ code = '''
assert(fsinfo.flags == (
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((!GBMAP) ? LFS3_I_LOOKAHEAD : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -6978,7 +6932,6 @@ code = '''
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -7005,7 +6958,6 @@ code = '''
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| ((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
// note ckdata implies ckmeta
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
| ((!CKDATA) ? LFS3_I_CKDATA : 0)
@@ -7155,7 +7107,6 @@ code = '''
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -7215,7 +7166,6 @@ code = '''
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -7244,7 +7194,6 @@ code = '''
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| ((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
// note ckdata implies ckmeta
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
| ((!CKDATA) ? LFS3_I_CKDATA : 0)
@@ -7399,7 +7348,6 @@ code = '''
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -7464,7 +7412,6 @@ code = '''
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -7493,7 +7440,6 @@ code = '''
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| ((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
// note ckdata implies ckmeta
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
| ((!CKDATA) ? LFS3_I_CKDATA : 0)
@@ -7613,10 +7559,7 @@ code = '''
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| ((ORPHANS > 0) ? LFS3_I_MKCONSISTENT : 0)
| LFS3_I_LOOKAHEAD
| ((GBMAP && ORPHANS >= 100)
? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1)
: 0)
| ((!GBMAP || ORPHANS >= 100) ? LFS3_I_LOOKAHEAD : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -7683,9 +7626,9 @@ code = '''
assert(fsinfo.flags == (
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| ((!LOOKAHEAD || ORPHANS > 0) ? LFS3_I_LOOKAHEAD : 0)
| ((GBMAP && ORPHANS >= 100)
? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1)
| (((!LOOKAHEAD || ORPHANS > 0)
&& (!GBMAP || ORPHANS >= 100))
? LFS3_I_LOOKAHEAD
: 0)
| LFS3_I_COMPACTMETA
// note ckdata implies ckmeta
@@ -7765,7 +7708,7 @@ code = '''
assert(fsinfo.flags == (
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((!GBMAP) ? LFS3_I_LOOKAHEAD : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -7854,9 +7797,9 @@ code = '''
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| ((ORPHANS >= 3) ? LFS3_I_MKCONSISTENT : 0)
| ((!LOOKAHEAD || ORPHANS > 0) ? LFS3_I_LOOKAHEAD : 0)
| ((GBMAP && ORPHANS >= 100)
? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1)
| (((!LOOKAHEAD || ORPHANS > 0)
&& (!GBMAP || ORPHANS >= 100))
? LFS3_I_LOOKAHEAD
: 0)
| LFS3_I_COMPACTMETA
// note ckdata implies ckmeta
@@ -7963,7 +7906,6 @@ code = '''
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| ((ORPHANS > 0) ? LFS3_I_MKCONSISTENT : 0)
| LFS3_I_LOOKAHEAD
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -8044,7 +7986,6 @@ code = '''
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| ((!LOOKAHEAD || ORPHANS > 0) ? LFS3_I_LOOKAHEAD : 0)
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
| LFS3_I_COMPACTMETA
// note ckdata implies ckmeta
| (((!CKMETA && !CKDATA) || ORPHANS > 0) ? LFS3_I_CKMETA : 0)
@@ -8150,7 +8091,6 @@ code = '''
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| ((ORPHANS > 0) ? LFS3_I_MKCONSISTENT : 0)
| LFS3_I_LOOKAHEAD
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -8231,7 +8171,6 @@ code = '''
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| ((!LOOKAHEAD || ORPHANS > 0) ? LFS3_I_LOOKAHEAD : 0)
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
| LFS3_I_COMPACTMETA
// note ckdata implies ckmeta
| (((!CKMETA && !CKDATA) || ORPHANS > 0) ? LFS3_I_CKMETA : 0)
@@ -8338,7 +8277,6 @@ code = '''
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| ((ORPHANS > 0) ? LFS3_I_MKCONSISTENT : 0)
| LFS3_I_LOOKAHEAD
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -8427,7 +8365,6 @@ code = '''
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| ((!LOOKAHEAD || ORPHANS > 0) ? LFS3_I_LOOKAHEAD : 0)
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
| LFS3_I_COMPACTMETA
// note ckdata implies ckmeta
| (((!CKMETA && !CKDATA) || ORPHANS > 0) ? LFS3_I_CKMETA : 0)
@@ -8534,7 +8471,6 @@ code = '''
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| ((ORPHANS > 0) ? LFS3_I_MKCONSISTENT : 0)
| LFS3_I_LOOKAHEAD
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -8623,7 +8559,6 @@ code = '''
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| ((!LOOKAHEAD || ORPHANS > 0) ? LFS3_I_LOOKAHEAD : 0)
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
| LFS3_I_COMPACTMETA
// note ckdata implies ckmeta
| (((!CKMETA && !CKDATA) || ORPHANS > 0) ? LFS3_I_CKMETA : 0)
@@ -8747,9 +8682,8 @@ code = '''
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| ((ORPHANS > 0) ? LFS3_I_MKCONSISTENT : 0)
| LFS3_I_LOOKAHEAD
| ((GBMAP && ORPHANS >= 100)
? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1)
| ((!GBMAP || ORPHANS >= 100)
? LFS3_I_LOOKAHEAD
: 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
@@ -8822,9 +8756,8 @@ code = '''
assert(fsinfo.flags == (
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((GBMAP && ORPHANS >= 100)
? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1)
| ((!GBMAP || ORPHANS >= 100)
? LFS3_I_LOOKAHEAD
: 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
@@ -8851,9 +8784,8 @@ code = '''
assert(fsinfo.flags == (
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| ((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
| ((GBMAP && ORPHANS >= 100)
? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1)
| ((!LOOKAHEAD && (!GBMAP || ORPHANS >= 100))
? LFS3_I_LOOKAHEAD
: 0)
// note ckdata implies ckmeta
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
@@ -8955,7 +8887,7 @@ code = '''
assert(fsinfo.flags == (
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| LFS3_I_LOOKAHEAD
| ((!GBMAP) ? LFS3_I_LOOKAHEAD : 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
| LFS3_I_CKDATA
@@ -9049,9 +8981,8 @@ code = '''
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
| ((ORPHANS >= 3) ? LFS3_I_MKCONSISTENT : 0)
| LFS3_I_LOOKAHEAD
| ((GBMAP && ORPHANS >= 100)
? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1)
| ((!GBMAP || ORPHANS >= 100)
? LFS3_I_LOOKAHEAD
: 0)
| LFS3_I_COMPACTMETA
| LFS3_I_CKMETA
@@ -9100,14 +9031,12 @@ code = '''
defines.STEPS = [1, 2, 4, 8, 16, 32, 64, 128]
defines.MKCONSISTENT = [false, true]
defines.LOOKAHEAD = [false, true]
defines.LOOKGBMAP = [false, true]
defines.COMPACTMETA = [false, true]
defines.CKMETA = [true]
defines.CKDATA = [true]
# set compactmeta thresh to minimum
defines.GC_COMPACTMETA_THRESH = 'BLOCK_SIZE/2'
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256]
if = 'GBMAP || !LOOKGBMAP'
code = '''
// test creating directories
lfs3_t lfs3;
@@ -9123,9 +9052,6 @@ code = '''
LFS3_T_RDWR
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
| ((LOOKGBMAP)
? LFS3_IFDEF_GBMAP(LFS3_T_LOOKGBMAP, -1)
: 0)
| ((COMPACTMETA) ? LFS3_T_COMPACTMETA : 0)
| ((CKMETA) ? LFS3_T_CKMETA : 0)
| ((CKDATA) ? LFS3_T_CKDATA : 0)) => 0;
@@ -9219,7 +9145,6 @@ code = '''
defines.STEPS = [1, 2, 4, 8, 16, 32, 64, 128]
defines.MKCONSISTENT = [false, true]
defines.LOOKAHEAD = [false, true]
defines.LOOKGBMAP = [false, true]
defines.COMPACTMETA = [false, true]
defines.CKMETA = [true]
defines.CKDATA = [true]
@@ -9229,7 +9154,6 @@ defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256]
defines.OPS = '2*N'
defines.SEED = 42
fuzz = 'SEED'
if = 'GBMAP || !LOOKGBMAP'
code = '''
// test fuzz with dirs
lfs3_t lfs3;
@@ -9249,9 +9173,6 @@ code = '''
LFS3_T_RDWR
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
| ((LOOKGBMAP)
? LFS3_IFDEF_GBMAP(LFS3_T_LOOKGBMAP, -1)
: 0)
| ((COMPACTMETA) ? LFS3_T_COMPACTMETA : 0)
| ((CKMETA) ? LFS3_T_CKMETA : 0)
| ((CKDATA) ? LFS3_T_CKDATA : 0)) => 0;
@@ -9409,7 +9330,6 @@ code = '''
defines.STEPS = [1, 2, 4, 8, 16, 32, 64, 128]
defines.MKCONSISTENT = [false, true]
defines.LOOKAHEAD = [false, true]
defines.LOOKGBMAP = [false, true]
defines.COMPACTMETA = [false, true]
defines.CKMETA = [true]
defines.CKDATA = [true]
@@ -9425,10 +9345,7 @@ defines.SIZE = [
'2*BLOCK_SIZE',
'4*BLOCK_SIZE',
]
if = [
'(SIZE*N)/BLOCK_SIZE <= 32',
'GBMAP || !LOOKGBMAP',
]
if = '(SIZE*N)/BLOCK_SIZE <= 32'
code = '''
// test creating files
lfs3_t lfs3;
@@ -9444,9 +9361,6 @@ code = '''
LFS3_T_RDWR
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
| ((LOOKGBMAP)
? LFS3_IFDEF_GBMAP(LFS3_T_LOOKGBMAP, -1)
: 0)
| ((COMPACTMETA) ? LFS3_T_COMPACTMETA : 0)
| ((CKMETA) ? LFS3_T_CKMETA : 0)
| ((CKDATA) ? LFS3_T_CKDATA : 0)) => 0;
@@ -9524,7 +9438,6 @@ code = '''
defines.STEPS = [1, 2, 4, 8, 16, 32, 64, 128]
defines.MKCONSISTENT = [false, true]
defines.LOOKAHEAD = [false, true]
defines.LOOKGBMAP = [false, true]
defines.COMPACTMETA = [false, true]
defines.CKMETA = [true]
defines.CKDATA = [true]
@@ -9543,10 +9456,7 @@ defines.SIZE = [
]
defines.SEED = 42
fuzz = 'SEED'
if = [
'(SIZE*N)/BLOCK_SIZE <= 16',
'GBMAP || !LOOKGBMAP',
]
if = '(SIZE*N)/BLOCK_SIZE <= 16'
code = '''
// test fuzz with files
lfs3_t lfs3;
@@ -9567,9 +9477,6 @@ code = '''
LFS3_T_RDWR
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
| ((LOOKGBMAP)
? LFS3_IFDEF_GBMAP(LFS3_T_LOOKGBMAP, -1)
: 0)
| ((COMPACTMETA) ? LFS3_T_COMPACTMETA : 0)
| ((CKMETA) ? LFS3_T_CKMETA : 0)
| ((CKDATA) ? LFS3_T_CKDATA : 0)) => 0;
@@ -9778,7 +9685,6 @@ code = '''
defines.STEPS = [1, 2, 4, 8, 16, 32, 64, 128]
defines.MKCONSISTENT = [false, true]
defines.LOOKAHEAD = [false, true]
defines.LOOKGBMAP = [false, true]
defines.COMPACTMETA = [false, true]
defines.CKMETA = [true]
defines.CKDATA = [true]
@@ -9806,7 +9712,6 @@ if = [
'CHUNK <= SIZE',
# this just saves testing time
'SIZE <= 4*1024*FRAGMENT_SIZE',
'GBMAP || !LOOKGBMAP',
]
code = '''
// test with complex file writes
@@ -9851,9 +9756,6 @@ code = '''
LFS3_T_RDWR
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
| ((LOOKGBMAP)
? LFS3_IFDEF_GBMAP(LFS3_T_LOOKGBMAP, -1)
: 0)
| ((COMPACTMETA) ? LFS3_T_COMPACTMETA : 0)
| ((CKMETA) ? LFS3_T_CKMETA : 0)
| ((CKDATA) ? LFS3_T_CKDATA : 0)) => 0;
@@ -9950,7 +9852,6 @@ code = '''
defines.STEPS = [1, 2, 4, 8, 16, 32, 64, 128]
defines.MKCONSISTENT = [false, true]
defines.LOOKAHEAD = [false, true]
defines.LOOKGBMAP = [false, true]
defines.COMPACTMETA = [false, true]
defines.CKMETA = [true]
defines.CKDATA = [true]
@@ -9971,10 +9872,7 @@ defines.SIZE = [
]
defines.SEED = 42
fuzz = 'SEED'
if = [
'(SIZE*N)/BLOCK_SIZE <= 16',
'GBMAP || !LOOKGBMAP',
]
if = '(SIZE*N)/BLOCK_SIZE <= 16'
code = '''
// test with uncreats, zombies, etc
lfs3_t lfs3;
@@ -10006,9 +9904,6 @@ code = '''
LFS3_T_RDWR
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
| ((LOOKGBMAP)
? LFS3_IFDEF_GBMAP(LFS3_T_LOOKGBMAP, -1)
: 0)
| ((COMPACTMETA) ? LFS3_T_COMPACTMETA : 0)
| ((CKMETA) ? LFS3_T_CKMETA : 0)
| ((CKDATA) ? LFS3_T_CKDATA : 0)) => 0;
@@ -10415,7 +10310,6 @@ code = '''
defines.STEPS = [1, 2, 4, 8, 16, 32, 64, 128]
defines.MKCONSISTENT = [false, true]
defines.LOOKAHEAD = [false, true]
defines.LOOKGBMAP = [false, true]
defines.COMPACTMETA = [false, true]
defines.CKMETA = [true]
defines.CKDATA = [true]
@@ -10436,10 +10330,7 @@ defines.SIZE = [
]
defines.SEED = 42
fuzz = 'SEED'
if = [
'(SIZE*N)/BLOCK_SIZE <= 16',
'GBMAP || !LOOKGBMAP',
]
if = '(SIZE*N)/BLOCK_SIZE <= 16'
code = '''
// test with uncreats, zombies, dirs, etc
lfs3_t lfs3;
@@ -10472,9 +10363,6 @@ code = '''
LFS3_T_RDWR
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
| ((LOOKGBMAP)
? LFS3_IFDEF_GBMAP(LFS3_T_LOOKGBMAP, -1)
: 0)
| ((COMPACTMETA) ? LFS3_T_COMPACTMETA : 0)
| ((CKMETA) ? LFS3_T_CKMETA : 0)
| ((CKDATA) ? LFS3_T_CKDATA : 0)) => 0;