mirror of
https://github.com/littlefs-project/littlefs.git
synced 2025-12-01 12:20:02 +00:00
gbmap: Renamed gbmap_rebuild_thresh -> gbmap_repop_thresh
And tweaked a few related comments. I'm still on the fence with this name, I don't think it's great, but it at least betters describes the "repopulation" operation than "rebuilding". The important distinction is that we don't throw away information. Bad/erased block info (future) is still carried over into the new gbmap snapshot, and persists unless you explicitly call rmgbmap + mkgbmap. So, adopting gbmap_repop_thresh for now to see if it's just a habit thing, but may adopt a different name in the future. As a plus, gbmap_repop_thresh is two characters shorter.
This commit is contained in:
88
lfs3.c
88
lfs3.c
@ -7399,10 +7399,10 @@ static inline bool lfs3_t_islookahead(uint32_t flags) {
|
||||
#endif
|
||||
}
|
||||
|
||||
static inline bool lfs3_t_isrebuildgbmap(uint32_t flags) {
|
||||
static inline bool lfs3_t_isrepopgbmap(uint32_t flags) {
|
||||
(void)flags;
|
||||
#if !defined(LFS3_RDONLY) && defined(LFS3_GBMAP)
|
||||
return flags & LFS3_T_REBUILDGBMAP;
|
||||
return flags & LFS3_T_REPOPGBMAP;
|
||||
#else
|
||||
return false;
|
||||
#endif
|
||||
@ -10642,7 +10642,7 @@ static lfs3_stag_t lfs3_mtree_gc(lfs3_t *lfs3, lfs3_mgc_t *mgc,
|
||||
//
|
||||
// note because we bail as soon as a ckpoint is triggered
|
||||
// (lfs3_t_isckpointed), we don't need to traverse this
|
||||
if (lfs3_t_isrebuildgbmap(mgc->t.b.h.flags)
|
||||
if (lfs3_t_isrepopgbmap(mgc->t.b.h.flags)
|
||||
&& lfs3_f_isgbmap(lfs3->flags)
|
||||
&& !lfs3_t_ismtreeonly(mgc->t.b.h.flags)) {
|
||||
// at least checkpoint the lookahead buffer
|
||||
@ -10692,7 +10692,7 @@ dropped:;
|
||||
|
||||
// mark in-use blocks in gbmap?
|
||||
#ifdef LFS3_GBMAP
|
||||
if (lfs3_t_isrebuildgbmap(mgc->t.b.h.flags)
|
||||
if (lfs3_t_isrepopgbmap(mgc->t.b.h.flags)
|
||||
&& lfs3_f_isgbmap(lfs3->flags)
|
||||
&& !lfs3_t_ismtreeonly(mgc->t.b.h.flags)
|
||||
&& !lfs3_t_isckpointed(mgc->t.b.h.flags)) {
|
||||
@ -10774,9 +10774,9 @@ eot:;
|
||||
}
|
||||
#endif
|
||||
|
||||
// was gbmap rebuild successful?
|
||||
// was gbmap repop successful?
|
||||
#ifdef LFS3_GBMAP
|
||||
if (lfs3_t_isrebuildgbmap(mgc->t.b.h.flags)
|
||||
if (lfs3_t_isrepopgbmap(mgc->t.b.h.flags)
|
||||
&& lfs3_f_isgbmap(lfs3->flags)
|
||||
&& !lfs3_t_ismtreeonly(mgc->t.b.h.flags)
|
||||
&& !lfs3_t_isckpointed(mgc->t.b.h.flags)) {
|
||||
@ -10916,7 +10916,7 @@ failed:;
|
||||
// range, cross-range sets are not currently not supported
|
||||
//
|
||||
// really this just provides a shortcut for bulk clearing ranges in
|
||||
// lfs3_alloc_rebuildgbmap
|
||||
// lfs3_alloc_repopgbmap
|
||||
static int lfs3_gbmap_mark_(lfs3_t *lfs3, lfs3_btree_t *gbmap,
|
||||
lfs3_block_t block, lfs3_block_t weight, lfs3_tag_t tag) {
|
||||
// lookup gbmap range
|
||||
@ -11122,7 +11122,7 @@ static inline void lfs3_alloc_ckpoint_(lfs3_t *lfs3) {
|
||||
#endif
|
||||
|
||||
// needed in lfs3_alloc_ckpoint
|
||||
static int lfs3_alloc_rebuildgbmap(lfs3_t *lfs3);
|
||||
static int lfs3_alloc_repopgbmap(lfs3_t *lfs3);
|
||||
|
||||
// checkpoint the allocator
|
||||
//
|
||||
@ -11138,12 +11138,12 @@ static inline int lfs3_alloc_ckpoint(lfs3_t *lfs3) {
|
||||
lfs3_alloc_ckpoint_(lfs3);
|
||||
|
||||
#ifdef LFS3_GBMAP
|
||||
// do we need to rebuild the gbmap?
|
||||
// do we need to repop the gbmap?
|
||||
if (lfs3_f_isgbmap(lfs3->flags)
|
||||
&& lfs3->gbmap.known < lfs3_min(
|
||||
lfs3->cfg->gbmap_rebuild_thresh,
|
||||
lfs3->cfg->gbmap_repop_thresh,
|
||||
lfs3->block_count)) {
|
||||
int err = lfs3_alloc_rebuildgbmap(lfs3);
|
||||
int err = lfs3_alloc_repopgbmap(lfs3);
|
||||
if (err) {
|
||||
return err;
|
||||
}
|
||||
@ -11308,7 +11308,7 @@ static void lfs3_alloc_inc(lfs3_t *lfs3) {
|
||||
lfs3->gbmap.known = lfs3_smax(lfs3->gbmap.known-1, 0);
|
||||
|
||||
// signal that the gbmap is no longer full
|
||||
lfs3->flags |= LFS3_I_REBUILDGBMAP;
|
||||
lfs3->flags |= LFS3_I_REPOPGBMAP;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
@ -11457,14 +11457,13 @@ static void lfs3_alloc_adoptgbmap(lfs3_t *lfs3,
|
||||
lfs3->gbmap.b = *gbmap;
|
||||
|
||||
// signal that gbmap is full, this is cleared on first alloc
|
||||
lfs3->flags &= ~LFS3_I_REBUILDGBMAP;
|
||||
lfs3->flags &= ~LFS3_I_REPOPGBMAP;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if !defined(LFS3_RDONLY) && defined(LFS3_GBMAP)
|
||||
static int lfs3_alloc_rebuildgbmap(lfs3_t *lfs3) {
|
||||
LFS3_INFO("Rebuilding gbmap "
|
||||
"(gbmap %"PRId32"/%"PRId32")",
|
||||
static int lfs3_alloc_repopgbmap(lfs3_t *lfs3) {
|
||||
LFS3_INFO("Repopulating gbmap (gbmap %"PRId32"/%"PRId32")",
|
||||
lfs3->gbmap.known,
|
||||
lfs3->block_count);
|
||||
|
||||
@ -11511,7 +11510,7 @@ static int lfs3_alloc_rebuildgbmap(lfs3_t *lfs3) {
|
||||
//
|
||||
// we don't commit this to disk immediately, instead we piggypack on
|
||||
// the next mdir commit, most writes terminate in an mdir commit so
|
||||
// this avoids extra writing at a risk of needing to rebuild the
|
||||
// this avoids extra writing at a risk of needing to repop the
|
||||
// gbmap if we lose power
|
||||
//
|
||||
lfs3_alloc_adoptgbmap(lfs3, &gbmap_, lfs3->lookahead.ckpoint);
|
||||
@ -15446,7 +15445,7 @@ static int lfs3_init(lfs3_t *lfs3, uint32_t flags,
|
||||
LFS3_ASSERT((lfs3->cfg->gc_flags & ~(
|
||||
LFS3_GC_MKCONSISTENT
|
||||
| LFS3_GC_LOOKAHEAD
|
||||
| LFS3_IFDEF_GBMAP(LFS3_GC_REBUILDGBMAP, 0)
|
||||
| LFS3_IFDEF_GBMAP(LFS3_GC_REPOPGBMAP, 0)
|
||||
| LFS3_GC_COMPACT
|
||||
| LFS3_GC_CKMETA
|
||||
| LFS3_GC_CKDATA)) == 0);
|
||||
@ -16283,13 +16282,14 @@ static int lfs3_mountinited(lfs3_t *lfs3) {
|
||||
// known gbmap window
|
||||
lfs3->lookahead.window = lfs3->gbmap.window;
|
||||
|
||||
// and mark our gbmap as rebuildable if known window does not
|
||||
// and mark our gbmap as repopulatable if known window does not
|
||||
// include the entire disk
|
||||
//
|
||||
// unfortunately the use of block allocation during gbmap
|
||||
// rebuilds means this almost never happens
|
||||
// repops means the known window almost never includes the
|
||||
// entire disk
|
||||
if (lfs3->gbmap.known < lfs3->block_count) {
|
||||
lfs3->flags |= LFS3_I_REBUILDGBMAP;
|
||||
lfs3->flags |= LFS3_I_REPOPGBMAP;
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -16346,8 +16346,8 @@ int lfs3_mount(lfs3_t *lfs3, uint32_t flags,
|
||||
#ifdef LFS3_YES_LOOKAHEAD
|
||||
flags |= LFS3_M_LOOKAHEAD;
|
||||
#endif
|
||||
#ifdef LFS3_YES_REBUILDGBMAP
|
||||
flags |= LFS3_YES_REBUILDGBMAP;
|
||||
#ifdef LFS3_YES_REPOPGBMAP
|
||||
flags |= LFS3_YES_REPOPGBMAP;
|
||||
#endif
|
||||
#ifdef LFS3_YES_COMPACT
|
||||
flags |= LFS3_M_COMPACT;
|
||||
@ -16374,14 +16374,14 @@ int lfs3_mount(lfs3_t *lfs3, uint32_t flags,
|
||||
| LFS3_IFDEF_RDONLY(0, LFS3_M_MKCONSISTENT)
|
||||
| LFS3_IFDEF_RDONLY(0, LFS3_M_LOOKAHEAD)
|
||||
| LFS3_IFDEF_RDONLY(0,
|
||||
LFS3_IFDEF_GBMAP(LFS3_M_REBUILDGBMAP, 0))
|
||||
LFS3_IFDEF_GBMAP(LFS3_M_REPOPGBMAP, 0))
|
||||
| LFS3_IFDEF_RDONLY(0, LFS3_M_COMPACT)
|
||||
| LFS3_M_CKMETA
|
||||
| LFS3_M_CKDATA)) == 0);
|
||||
// these flags require a writable filesystem
|
||||
LFS3_ASSERT(!lfs3_m_isrdonly(flags) || !lfs3_t_ismkconsistent(flags));
|
||||
LFS3_ASSERT(!lfs3_m_isrdonly(flags) || !lfs3_t_islookahead(flags));
|
||||
LFS3_ASSERT(!lfs3_m_isrdonly(flags) || !lfs3_t_isrebuildgbmap(flags));
|
||||
LFS3_ASSERT(!lfs3_m_isrdonly(flags) || !lfs3_t_isrepopgbmap(flags));
|
||||
LFS3_ASSERT(!lfs3_m_isrdonly(flags) || !lfs3_t_iscompact(flags));
|
||||
|
||||
int err = lfs3_init(lfs3,
|
||||
@ -16411,7 +16411,7 @@ int lfs3_mount(lfs3_t *lfs3, uint32_t flags,
|
||||
LFS3_IFDEF_RDONLY(0, LFS3_M_MKCONSISTENT)
|
||||
| LFS3_IFDEF_RDONLY(0, LFS3_M_LOOKAHEAD)
|
||||
| LFS3_IFDEF_RDONLY(0,
|
||||
LFS3_IFDEF_GBMAP(LFS3_M_REBUILDGBMAP, 0))
|
||||
LFS3_IFDEF_GBMAP(LFS3_M_REPOPGBMAP, 0))
|
||||
| LFS3_IFDEF_RDONLY(0, LFS3_M_COMPACT)
|
||||
| LFS3_M_CKMETA
|
||||
| LFS3_M_CKDATA)) {
|
||||
@ -16421,7 +16421,7 @@ int lfs3_mount(lfs3_t *lfs3, uint32_t flags,
|
||||
LFS3_IFDEF_RDONLY(0, LFS3_M_MKCONSISTENT)
|
||||
| LFS3_IFDEF_RDONLY(0, LFS3_M_LOOKAHEAD)
|
||||
| LFS3_IFDEF_RDONLY(0,
|
||||
LFS3_IFDEF_GBMAP(LFS3_M_REBUILDGBMAP, 0))
|
||||
LFS3_IFDEF_GBMAP(LFS3_M_REPOPGBMAP, 0))
|
||||
| LFS3_IFDEF_RDONLY(0, LFS3_M_COMPACT)
|
||||
| LFS3_M_CKMETA
|
||||
| LFS3_M_CKDATA),
|
||||
@ -16765,7 +16765,7 @@ int lfs3_fs_stat(lfs3_t *lfs3, struct lfs3_fsinfo *fsinfo) {
|
||||
| LFS3_IFDEF_RDONLY(0, LFS3_I_MKCONSISTENT)
|
||||
| LFS3_IFDEF_RDONLY(0, LFS3_I_LOOKAHEAD)
|
||||
| LFS3_IFDEF_RDONLY(0,
|
||||
LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, 0))
|
||||
LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, 0))
|
||||
| LFS3_IFDEF_RDONLY(0, LFS3_I_COMPACT)
|
||||
| LFS3_I_CKMETA
|
||||
| LFS3_I_CKDATA
|
||||
@ -17034,18 +17034,18 @@ static int lfs3_fs_gc_(lfs3_t *lfs3, lfs3_mgc_t *mgc,
|
||||
LFS3_IFDEF_RDONLY(0, LFS3_T_MKCONSISTENT)
|
||||
| LFS3_IFDEF_RDONLY(0, LFS3_T_LOOKAHEAD)
|
||||
| LFS3_IFDEF_RDONLY(0,
|
||||
LFS3_IFDEF_GBMAP(LFS3_T_REBUILDGBMAP, 0))
|
||||
LFS3_IFDEF_GBMAP(LFS3_T_REPOPGBMAP, 0))
|
||||
| LFS3_IFDEF_RDONLY(0, LFS3_T_COMPACT)
|
||||
| LFS3_T_CKMETA
|
||||
| LFS3_T_CKDATA)) == 0);
|
||||
// these flags require a writable filesystem
|
||||
LFS3_ASSERT(!lfs3_m_isrdonly(lfs3->flags) || !lfs3_t_ismkconsistent(flags));
|
||||
LFS3_ASSERT(!lfs3_m_isrdonly(lfs3->flags) || !lfs3_t_islookahead(flags));
|
||||
LFS3_ASSERT(!lfs3_m_isrdonly(lfs3->flags) || !lfs3_t_isrebuildgbmap(flags));
|
||||
LFS3_ASSERT(!lfs3_m_isrdonly(lfs3->flags) || !lfs3_t_isrepopgbmap(flags));
|
||||
LFS3_ASSERT(!lfs3_m_isrdonly(lfs3->flags) || !lfs3_t_iscompact(flags));
|
||||
// some flags don't make sense when only traversing the mtree
|
||||
LFS3_ASSERT(!lfs3_t_ismtreeonly(flags) || !lfs3_t_islookahead(flags));
|
||||
LFS3_ASSERT(!lfs3_t_ismtreeonly(flags) || !lfs3_t_isrebuildgbmap(flags));
|
||||
LFS3_ASSERT(!lfs3_t_ismtreeonly(flags) || !lfs3_t_isrepopgbmap(flags));
|
||||
LFS3_ASSERT(!lfs3_t_ismtreeonly(flags) || !lfs3_t_isckdata(flags));
|
||||
|
||||
// fix pending grms if requested
|
||||
@ -17065,7 +17065,7 @@ static int lfs3_fs_gc_(lfs3_t *lfs3, lfs3_mgc_t *mgc,
|
||||
LFS3_IFDEF_RDONLY(0, LFS3_I_MKCONSISTENT)
|
||||
| LFS3_IFDEF_RDONLY(0, LFS3_I_LOOKAHEAD)
|
||||
| LFS3_IFDEF_RDONLY(0,
|
||||
LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, 0))
|
||||
LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, 0))
|
||||
| LFS3_IFDEF_RDONLY(0, LFS3_I_COMPACT)
|
||||
| LFS3_I_CKMETA
|
||||
| LFS3_I_CKDATA)));
|
||||
@ -17082,7 +17082,7 @@ static int lfs3_fs_gc_(lfs3_t *lfs3, lfs3_mgc_t *mgc,
|
||||
if (lfs3_t_isckpointed(mgc->t.b.h.flags)) {
|
||||
mgc->t.b.h.flags &= ~LFS3_T_LOOKAHEAD;
|
||||
#ifdef LFS3_GBMAP
|
||||
mgc->t.b.h.flags &= ~LFS3_T_REBUILDGBMAP;
|
||||
mgc->t.b.h.flags &= ~LFS3_T_REPOPGBMAP;
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
@ -17092,7 +17092,7 @@ static int lfs3_fs_gc_(lfs3_t *lfs3, lfs3_mgc_t *mgc,
|
||||
LFS3_IFDEF_RDONLY(0, LFS3_T_MKCONSISTENT)
|
||||
| LFS3_IFDEF_RDONLY(0, LFS3_T_LOOKAHEAD)
|
||||
| LFS3_IFDEF_RDONLY(0,
|
||||
LFS3_IFDEF_GBMAP(LFS3_T_REBUILDGBMAP, 0))
|
||||
LFS3_IFDEF_GBMAP(LFS3_T_REPOPGBMAP, 0))
|
||||
| LFS3_IFDEF_RDONLY(0, LFS3_T_COMPACT)
|
||||
| LFS3_T_CKMETA
|
||||
| LFS3_T_CKDATA))) {
|
||||
@ -17104,7 +17104,7 @@ static int lfs3_fs_gc_(lfs3_t *lfs3, lfs3_mgc_t *mgc,
|
||||
if (!(mgc->t.b.h.flags & (
|
||||
LFS3_IFDEF_RDONLY(0, LFS3_T_LOOKAHEAD)
|
||||
| LFS3_IFDEF_RDONLY(0,
|
||||
LFS3_IFDEF_GBMAP(LFS3_T_REBUILDGBMAP, 0))
|
||||
LFS3_IFDEF_GBMAP(LFS3_T_REPOPGBMAP, 0))
|
||||
| LFS3_T_CKMETA
|
||||
| LFS3_T_CKDATA))) {
|
||||
mgc->t.b.h.flags |= LFS3_T_MTREEONLY;
|
||||
@ -17127,7 +17127,7 @@ static int lfs3_fs_gc_(lfs3_t *lfs3, lfs3_mgc_t *mgc,
|
||||
LFS3_IFDEF_RDONLY(0, LFS3_I_MKCONSISTENT)
|
||||
| LFS3_IFDEF_RDONLY(0, LFS3_I_LOOKAHEAD)
|
||||
| LFS3_IFDEF_RDONLY(0,
|
||||
LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, 0))
|
||||
LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, 0))
|
||||
| LFS3_IFDEF_RDONLY(0, LFS3_I_COMPACT)
|
||||
| LFS3_I_CKMETA
|
||||
| LFS3_I_CKDATA);
|
||||
@ -17162,7 +17162,7 @@ int lfs3_fs_unck(lfs3_t *lfs3, uint32_t flags) {
|
||||
LFS3_IFDEF_RDONLY(0, LFS3_I_MKCONSISTENT)
|
||||
| LFS3_IFDEF_RDONLY(0, LFS3_I_LOOKAHEAD)
|
||||
| LFS3_IFDEF_RDONLY(0,
|
||||
LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, 0))
|
||||
LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, 0))
|
||||
| LFS3_IFDEF_RDONLY(0, LFS3_I_COMPACT)
|
||||
| LFS3_I_CKMETA
|
||||
| LFS3_I_CKDATA)) == 0);
|
||||
@ -17235,7 +17235,7 @@ int lfs3_fs_grow(lfs3_t *lfs3, lfs3_size_t block_count_) {
|
||||
}
|
||||
|
||||
// checkpoint the lookahead buffer, but _not_ the gbmap, we
|
||||
// cann't rebuild the gbmap until we've resized it
|
||||
// can't repop the gbmap until we've resized it
|
||||
lfs3_alloc_ckpoint_(lfs3);
|
||||
|
||||
// we don't need a copy because this is atomic, and mdir commit
|
||||
@ -17297,10 +17297,9 @@ int lfs3_fs_mkgbmap(lfs3_t *lfs3) {
|
||||
return err;
|
||||
}
|
||||
|
||||
// create an empty gbmap
|
||||
// create an empty gbmap, let lfs3_alloc_ckpoint populate it
|
||||
lfs3_gbmap_init(&lfs3->gbmap);
|
||||
|
||||
// start with everything free, rebuilding the gbmap will populate it
|
||||
err = lfs3_gbmap_commit(lfs3, &lfs3->gbmap.b, 0, LFS3_RATTRS(
|
||||
LFS3_RATTR(LFS3_TAG_BMFREE, +lfs3->block_count)));
|
||||
if (err) {
|
||||
@ -17315,7 +17314,8 @@ int lfs3_fs_mkgbmap(lfs3_t *lfs3) {
|
||||
lfs3->gbmap.window = (lfs3->lookahead.window + lfs3->lookahead.off)
|
||||
% lfs3->block_count;
|
||||
|
||||
// checkpoint the allocator again, this should trigger a rebuild
|
||||
// checkpoint the allocator again, this should trigger a
|
||||
// repopulation scan
|
||||
err = lfs3_alloc_ckpoint(lfs3);
|
||||
if (err) {
|
||||
goto failed;
|
||||
@ -17394,7 +17394,7 @@ int lfs3_trv_open(lfs3_t *lfs3, lfs3_trv_t *trv, uint32_t flags) {
|
||||
| LFS3_IFDEF_RDONLY(0, LFS3_T_MKCONSISTENT)
|
||||
| LFS3_IFDEF_RDONLY(0, LFS3_T_LOOKAHEAD)
|
||||
| LFS3_IFDEF_RDONLY(0,
|
||||
LFS3_IFDEF_GBMAP(LFS3_T_REBUILDGBMAP, 0))
|
||||
LFS3_IFDEF_GBMAP(LFS3_T_REPOPGBMAP, 0))
|
||||
| LFS3_IFDEF_RDONLY(0, LFS3_T_COMPACT)
|
||||
| LFS3_T_CKMETA
|
||||
| LFS3_T_CKDATA)) == 0);
|
||||
@ -17403,11 +17403,11 @@ int lfs3_trv_open(lfs3_t *lfs3, lfs3_trv_t *trv, uint32_t flags) {
|
||||
// these flags require a writable traversal
|
||||
LFS3_ASSERT(!lfs3_t_isrdonly(flags) || !lfs3_t_ismkconsistent(flags));
|
||||
LFS3_ASSERT(!lfs3_t_isrdonly(flags) || !lfs3_t_islookahead(flags));
|
||||
LFS3_ASSERT(!lfs3_t_isrdonly(flags) || !lfs3_t_isrebuildgbmap(flags));
|
||||
LFS3_ASSERT(!lfs3_t_isrdonly(flags) || !lfs3_t_isrepopgbmap(flags));
|
||||
LFS3_ASSERT(!lfs3_t_isrdonly(flags) || !lfs3_t_iscompact(flags));
|
||||
// some flags don't make sense when only traversing the mtree
|
||||
LFS3_ASSERT(!lfs3_t_ismtreeonly(flags) || !lfs3_t_islookahead(flags));
|
||||
LFS3_ASSERT(!lfs3_t_ismtreeonly(flags) || !lfs3_t_isrebuildgbmap(flags));
|
||||
LFS3_ASSERT(!lfs3_t_ismtreeonly(flags) || !lfs3_t_isrepopgbmap(flags));
|
||||
LFS3_ASSERT(!lfs3_t_ismtreeonly(flags) || !lfs3_t_isckdata(flags));
|
||||
|
||||
// setup traversal state
|
||||
|
||||
33
lfs3.h
33
lfs3.h
@ -237,8 +237,8 @@ enum lfs3_type {
|
||||
0x00000200 // Populate lookahead buffer
|
||||
#endif
|
||||
#if !defined(LFS3_RDONLY) && defined(LFS3_GBMAP)
|
||||
#define LFS3_M_REBUILDGBMAP \
|
||||
0x00000400 // Rebuild the gbmap
|
||||
#define LFS3_M_REPOPGBMAP \
|
||||
0x00000400 // Repopulate the gbmap
|
||||
#endif
|
||||
#ifndef LFS3_RDONLY
|
||||
#define LFS3_M_COMPACT 0x00000800 // Compact metadata logs
|
||||
@ -282,7 +282,7 @@ enum lfs3_type {
|
||||
0x00000200 // Lookahead buffer is not full
|
||||
#endif
|
||||
#if !defined(LFS3_RDONLY) && defined(LFS3_GBMAP)
|
||||
#define LFS3_I_REBUILDGBMAP \
|
||||
#define LFS3_I_REPOPGBMAP \
|
||||
0x00000400 // The gbmap is not full
|
||||
#endif
|
||||
#ifndef LFS3_RDONLY
|
||||
@ -327,8 +327,8 @@ enum lfs3_btype {
|
||||
0x00000200 // Populate lookahead buffer
|
||||
#endif
|
||||
#if !defined(LFS3_RDONLY) && defined(LFS3_GBMAP)
|
||||
#define LFS3_T_REBUILDGBMAP \
|
||||
0x00000400 // Rebuild the gbmap
|
||||
#define LFS3_T_REPOPGBMAP \
|
||||
0x00000400 // Repopulate the gbmap
|
||||
#endif
|
||||
#ifndef LFS3_RDONLY
|
||||
#define LFS3_T_COMPACT 0x00000800 // Compact metadata logs
|
||||
@ -356,8 +356,8 @@ enum lfs3_btype {
|
||||
0x00000200 // Populate lookahead buffer
|
||||
#endif
|
||||
#if !defined(LFS3_RDONLY) && defined(LFS3_GBMAP)
|
||||
#define LFS3_GC_REBUILDGBMAP \
|
||||
0x00000400 // Rebuild the gbmap
|
||||
#define LFS3_GC_REPOPGBMAP \
|
||||
0x00000400 // Repopulate the gbmap
|
||||
#endif
|
||||
#ifndef LFS3_RDONLY
|
||||
#define LFS3_GC_COMPACT 0x00000800 // Compact metadata logs
|
||||
@ -564,16 +564,17 @@ struct lfs3_cfg {
|
||||
lfs3_size_t crystal_thresh;
|
||||
#endif
|
||||
|
||||
// Threshold for when to rebuild the global on-disk block-map (gbmap).
|
||||
// littlefs will attempt to rebuild the gbmap when fewer than this
|
||||
// many blocks are known. Larger values rebuild the gbmap more
|
||||
// frequently, reducing the chance of falling back to a slower
|
||||
// allocator at the cost of amortized allocator throughput.
|
||||
// Threshold for when to repopulate the global on-disk block-map
|
||||
// (gbmap). When <= this many blocks have a known state, littlefs
|
||||
// will traverse the filesystem and attempt to repopulate the gbmap.
|
||||
// Smaller values decrease repop frequency and improves overall
|
||||
// allocator throughput, at the risk of needing to fallback to the
|
||||
// slower lookahead allocator when empty.
|
||||
//
|
||||
// 0 only rebuilds the gbmap when empty, but note rebuilding the
|
||||
// gbmap may require allocating blocks.
|
||||
// 0 only repopulates the gbmap when empty, minimizing gbmap
|
||||
// repops but may introduce large latency spikes.
|
||||
#ifdef LFS3_GBMAP
|
||||
lfs3_block_t gbmap_rebuild_thresh;
|
||||
lfs3_block_t gbmap_repop_thresh;
|
||||
#endif
|
||||
};
|
||||
|
||||
@ -837,7 +838,7 @@ typedef struct lfs3_mgc {
|
||||
lfs3_mtrv_t t;
|
||||
|
||||
#ifdef LFS3_GBMAP
|
||||
// rebuild gbmap when traversing with rebuildgbmap
|
||||
// repopulate gbmap when traversing with repopgbmap
|
||||
lfs3_btree_t gbmap_;
|
||||
#endif
|
||||
} lfs3_mgc_t;
|
||||
|
||||
@ -120,7 +120,7 @@ void bench_permutation(size_t i, uint32_t *buffer, size_t size);
|
||||
BENCH_DEFINE(INLINE_SIZE, BLOCK_SIZE/4 ) \
|
||||
BENCH_DEFINE(FRAGMENT_SIZE, LFS3_MIN(BLOCK_SIZE/8, 512) ) \
|
||||
BENCH_DEFINE(CRYSTAL_THRESH, BLOCK_SIZE/8 ) \
|
||||
BENCH_DEFINE(GBMAP_REBUILD_THRESH, BLOCK_COUNT/4 ) \
|
||||
BENCH_DEFINE(GBMAP_REPOP_THRESH, BLOCK_COUNT/4 ) \
|
||||
BENCH_DEFINE(ERASE_VALUE, 0xff ) \
|
||||
BENCH_DEFINE(ERASE_CYCLES, 0 ) \
|
||||
BENCH_DEFINE(BADBLOCK_BEHAVIOR, LFS3_EMUBD_BADBLOCK_PROGERROR ) \
|
||||
@ -154,7 +154,7 @@ void bench_permutation(size_t i, uint32_t *buffer, size_t size);
|
||||
|
||||
#ifdef LFS3_GBMAP
|
||||
#define BENCH_GBMAP_CFG \
|
||||
.gbmap_rebuild_thresh = GBMAP_REBUILD_THRESH,
|
||||
.gbmap_repop_thresh = GBMAP_REPOP_THRESH,
|
||||
#else
|
||||
#define BENCH_GBMAP_CFG
|
||||
#endif
|
||||
|
||||
@ -111,7 +111,7 @@ void test_permutation(size_t i, uint32_t *buffer, size_t size);
|
||||
TEST_DEFINE(INLINE_SIZE, BLOCK_SIZE/4 ) \
|
||||
TEST_DEFINE(FRAGMENT_SIZE, LFS3_MIN(BLOCK_SIZE/8, 512) ) \
|
||||
TEST_DEFINE(CRYSTAL_THRESH, BLOCK_SIZE/8 ) \
|
||||
TEST_DEFINE(GBMAP_REBUILD_THRESH, BLOCK_COUNT/4 ) \
|
||||
TEST_DEFINE(GBMAP_REPOP_THRESH, BLOCK_COUNT/4 ) \
|
||||
TEST_DEFINE(ERASE_VALUE, 0xff ) \
|
||||
TEST_DEFINE(ERASE_CYCLES, 0 ) \
|
||||
TEST_DEFINE(BADBLOCK_BEHAVIOR, LFS3_EMUBD_BADBLOCK_PROGERROR ) \
|
||||
@ -145,7 +145,7 @@ void test_permutation(size_t i, uint32_t *buffer, size_t size);
|
||||
|
||||
#ifdef LFS3_GBMAP
|
||||
#define TEST_GBMAP_CFG \
|
||||
.gbmap_rebuild_thresh = GBMAP_REBUILD_THRESH,
|
||||
.gbmap_repop_thresh = GBMAP_REPOP_THRESH,
|
||||
#else
|
||||
#define TEST_GBMAP_CFG
|
||||
#endif
|
||||
|
||||
@ -90,7 +90,7 @@ FLAGS = [
|
||||
|
||||
('M_MKCONSISTENT', 0x00000100, "Make the filesystem consistent" ),
|
||||
('M_LOOKAHEAD', 0x00000200, "Populate lookahead buffer" ),
|
||||
('M_REBUILDGBMAP', 0x00000400, "Rebuild the gbmap" ),
|
||||
('M_REPOPGBMAP', 0x00000400, "Repopulate the gbmap" ),
|
||||
('M_COMPACT', 0x00000800, "Compact metadata logs" ),
|
||||
('M_CKMETA', 0x00001000, "Check metadata checksums" ),
|
||||
('M_CKDATA', 0x00002000, "Check metadata + data checksums" ),
|
||||
@ -98,7 +98,7 @@ FLAGS = [
|
||||
# GC flags
|
||||
('GC_MKCONSISTENT',0x00000100, "Make the filesystem consistent" ),
|
||||
('GC_LOOKAHEAD', 0x00000200, "Populate lookahead buffer" ),
|
||||
('GC_REBUILDGBMAP',0x00000400, "Rebuild the gbmap" ),
|
||||
('GC_REPOPGBMAP', 0x00000400, "Repopulate the gbmap" ),
|
||||
('GC_COMPACT', 0x00000800, "Compact metadata logs" ),
|
||||
('GC_CKMETA', 0x00001000, "Check metadata checksums" ),
|
||||
('GC_CKDATA', 0x00002000, "Check metadata + data checksums" ),
|
||||
@ -116,7 +116,7 @@ FLAGS = [
|
||||
|
||||
('I_MKCONSISTENT', 0x00000100, "Filesystem needs mkconsistent to write" ),
|
||||
('I_LOOKAHEAD', 0x00000200, "Lookahead buffer is not full" ),
|
||||
('I_REBUILDGBMAP', 0x00000400, "The gbmap is not full" ),
|
||||
('I_REPOPGBMAP', 0x00000400, "The gbmap is not full" ),
|
||||
('I_COMPACT', 0x00000800, "Filesystem may have uncompacted metadata" ),
|
||||
('I_CKMETA', 0x00001000, "Metadata checksums not checked recently" ),
|
||||
('I_CKDATA', 0x00002000, "Data checksums not checked recently" ),
|
||||
@ -135,7 +135,7 @@ FLAGS = [
|
||||
('T_MKCONSISTENT',
|
||||
0x00000100, "Make the filesystem consistent" ),
|
||||
('T_LOOKAHEAD', 0x00000200, "Populate lookahead buffer" ),
|
||||
('T_REBUILDGBMAP', 0x00000400, "Rebuild the gbmap" ),
|
||||
('T_REPOPGBMAP', 0x00000400, "Repopulate the gbmap" ),
|
||||
('T_COMPACT', 0x00000800, "Compact metadata logs" ),
|
||||
('T_CKMETA', 0x00001000, "Check metadata checksums" ),
|
||||
('T_CKDATA', 0x00002000, "Check metadata + data checksums" ),
|
||||
|
||||
@ -162,13 +162,13 @@ code = '''
|
||||
'''
|
||||
|
||||
|
||||
# test that rebuildgbmap can make progress in isolation
|
||||
[cases.test_gc_rebuildgbmap_progress]
|
||||
# test that repopgbmap can make progress in isolation
|
||||
[cases.test_gc_repopgbmap_progress]
|
||||
defines.LOOKAHEAD = [false, true]
|
||||
defines.CKMETA = [false, true]
|
||||
defines.CKDATA = [false, true]
|
||||
defines.GC_FLAGS = '''
|
||||
LFS3_GC_REBUILDGBMAP
|
||||
LFS3_GC_REPOPGBMAP
|
||||
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
|
||||
@ -206,7 +206,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_REBUILDGBMAP);
|
||||
assert(fsinfo.flags & LFS3_I_REPOPGBMAP);
|
||||
assert(lfs3.handles != &lfs3.gc.gc.t.b.h);
|
||||
|
||||
// run GC until we make progress
|
||||
@ -217,7 +217,7 @@ code = '''
|
||||
lfs3_fs_gc(&lfs3) => 0;
|
||||
|
||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||
if (!(fsinfo.flags & LFS3_I_REBUILDGBMAP)) {
|
||||
if (!(fsinfo.flags & LFS3_I_REPOPGBMAP)) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -232,13 +232,13 @@ code = '''
|
||||
lfs3_unmount(&lfs3) => 0;
|
||||
'''
|
||||
|
||||
# test that rebuildgbmap dirtying still works with the GC API
|
||||
[cases.test_gc_rebuildgbmap_mutation]
|
||||
# test that repopgbmap dirtying still works with the GC API
|
||||
[cases.test_gc_repopgbmap_mutation]
|
||||
defines.LOOKAHEAD = [false, true]
|
||||
defines.CKMETA = [false, true]
|
||||
defines.CKDATA = [false, true]
|
||||
defines.GC_FLAGS = '''
|
||||
LFS3_GC_REBUILDGBMAP
|
||||
LFS3_GC_REPOPGBMAP
|
||||
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
|
||||
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
|
||||
@ -279,7 +279,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_REBUILDGBMAP);
|
||||
assert(fsinfo.flags & LFS3_I_REPOPGBMAP);
|
||||
assert(lfs3.handles != &lfs3.gc.gc.t.b.h);
|
||||
|
||||
// run GC one step
|
||||
@ -302,7 +302,7 @@ code = '''
|
||||
|
||||
// we should _not_ make progress
|
||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||
assert(fsinfo.flags & LFS3_I_REBUILDGBMAP);
|
||||
assert(fsinfo.flags & LFS3_I_REPOPGBMAP);
|
||||
|
||||
// check the file contents
|
||||
lfs3_file_open(&lfs3, &file, "spider", LFS3_O_RDONLY) => 0;
|
||||
@ -1599,14 +1599,14 @@ done:;
|
||||
defines.AFTER = [0, 1, 2, 3]
|
||||
defines.MKCONSISTENT = [false, true]
|
||||
defines.LOOKAHEAD = [false, true]
|
||||
defines.REBUILDGBMAP = [false, true]
|
||||
defines.REPOPGBMAP = [false, true]
|
||||
defines.COMPACT = [false, true]
|
||||
defines.CKMETA = [false, true]
|
||||
defines.CKDATA = [false, true]
|
||||
defines.GC_FLAGS = '''
|
||||
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
|
||||
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
|
||||
| ((REBUILDGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_REBUILDGBMAP, -1) : 0)
|
||||
| ((REPOPGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_REPOPGBMAP, -1) : 0)
|
||||
| ((COMPACT) ? LFS3_GC_COMPACT : 0)
|
||||
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
|
||||
@ -1625,7 +1625,7 @@ defines.SIZE = [
|
||||
if = [
|
||||
'(SIZE*N)/BLOCK_SIZE <= 32',
|
||||
'LFS3_IFDEF_GC(true, AFTER != 0)',
|
||||
'GBMAP || !REBUILDGBMAP',
|
||||
'GBMAP || !REPOPGBMAP',
|
||||
]
|
||||
code = '''
|
||||
lfs3_t lfs3;
|
||||
@ -1664,7 +1664,7 @@ code = '''
|
||||
LFS3_I_MKCONSISTENT
|
||||
| LFS3_I_LOOKAHEAD
|
||||
| ((GBMAP)
|
||||
? (LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1)
|
||||
? (LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1)
|
||||
& fsinfo.flags)
|
||||
: 0)
|
||||
| LFS3_I_COMPACT
|
||||
@ -1688,8 +1688,8 @@ code = '''
|
||||
if (!(fsinfo.flags & (
|
||||
((MKCONSISTENT) ? LFS3_I_MKCONSISTENT : 0)
|
||||
| ((LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
||||
| ((REBUILDGBMAP)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1)
|
||||
| ((REPOPGBMAP)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1)
|
||||
: 0)
|
||||
| ((COMPACT) ? LFS3_I_COMPACT : 0)
|
||||
| ((CKMETA) ? LFS3_I_CKMETA : 0)
|
||||
@ -1720,8 +1720,8 @@ code = '''
|
||||
if (!(fsinfo.flags & (
|
||||
((MKCONSISTENT) ? LFS3_I_MKCONSISTENT : 0)
|
||||
| ((LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
||||
| ((REBUILDGBMAP)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1)
|
||||
| ((REPOPGBMAP)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1)
|
||||
: 0)
|
||||
| ((COMPACT) ? LFS3_I_COMPACT : 0)
|
||||
| ((CKMETA) ? LFS3_I_CKMETA : 0)
|
||||
@ -1750,11 +1750,11 @@ code = '''
|
||||
}
|
||||
|
||||
#ifdef LFS3_GBMAP
|
||||
if (REBUILDGBMAP && (fsinfo.flags & LFS3_I_REBUILDGBMAP)) {
|
||||
if (REPOPGBMAP && (fsinfo.flags & LFS3_I_REPOPGBMAP)) {
|
||||
// we need an explicit traversal for this
|
||||
lfs3_trv_t trv;
|
||||
lfs3_trv_open(&lfs3, &trv,
|
||||
LFS3_T_RDWR | LFS3_T_REBUILDGBMAP) => 0;
|
||||
LFS3_T_RDWR | LFS3_T_REPOPGBMAP) => 0;
|
||||
while (true) {
|
||||
struct lfs3_tinfo tinfo;
|
||||
int err = lfs3_trv_read(&lfs3, &trv, &tinfo);
|
||||
@ -1806,9 +1806,9 @@ code = '''
|
||||
assert(fsinfo.flags == (
|
||||
((!MKCONSISTENT) ? LFS3_I_MKCONSISTENT : 0)
|
||||
| ((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
||||
| ((!REBUILDGBMAP)
|
||||
| ((!REPOPGBMAP)
|
||||
? ((GBMAP)
|
||||
? (LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1)
|
||||
? (LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1)
|
||||
& fsinfo.flags)
|
||||
: 0)
|
||||
: 0)
|
||||
@ -1830,14 +1830,14 @@ code = '''
|
||||
defines.AFTER = [0, 1, 2, 3]
|
||||
defines.MKCONSISTENT = [false, true]
|
||||
defines.LOOKAHEAD = [false, true]
|
||||
defines.REBUILDGBMAP = [false, true]
|
||||
defines.REPOPGBMAP = [false, true]
|
||||
defines.COMPACT = [false, true]
|
||||
defines.CKMETA = [false, true]
|
||||
defines.CKDATA = [false, true]
|
||||
defines.GC_FLAGS = '''
|
||||
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
|
||||
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
|
||||
| ((REBUILDGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_REBUILDGBMAP, -1) : 0)
|
||||
| ((REPOPGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_REPOPGBMAP, -1) : 0)
|
||||
| ((COMPACT) ? LFS3_GC_COMPACT : 0)
|
||||
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
|
||||
@ -1856,7 +1856,7 @@ defines.SIZE = [
|
||||
if = [
|
||||
'(SIZE*N)/BLOCK_SIZE <= 32',
|
||||
'LFS3_IFDEF_GC(true, AFTER != 0)',
|
||||
'GBMAP || !REBUILDGBMAP',
|
||||
'GBMAP || !REPOPGBMAP',
|
||||
]
|
||||
code = '''
|
||||
lfs3_t lfs3;
|
||||
@ -1895,7 +1895,7 @@ code = '''
|
||||
LFS3_I_MKCONSISTENT
|
||||
| LFS3_I_LOOKAHEAD
|
||||
| ((GBMAP)
|
||||
? (LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1)
|
||||
? (LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1)
|
||||
& fsinfo.flags)
|
||||
: 0)
|
||||
| LFS3_I_COMPACT
|
||||
@ -1919,8 +1919,8 @@ code = '''
|
||||
if (!(fsinfo.flags & (
|
||||
((MKCONSISTENT) ? LFS3_I_MKCONSISTENT : 0)
|
||||
| ((LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
||||
| ((REBUILDGBMAP)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1)
|
||||
| ((REPOPGBMAP)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1)
|
||||
: 0)
|
||||
| ((COMPACT) ? LFS3_I_COMPACT : 0)
|
||||
| ((CKMETA) ? LFS3_I_CKMETA : 0)
|
||||
@ -1951,8 +1951,8 @@ code = '''
|
||||
if (!(fsinfo.flags & (
|
||||
((MKCONSISTENT) ? LFS3_I_MKCONSISTENT : 0)
|
||||
| ((LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
||||
| ((REBUILDGBMAP)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1)
|
||||
| ((REPOPGBMAP)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1)
|
||||
: 0)
|
||||
| ((COMPACT) ? LFS3_I_COMPACT : 0)
|
||||
| ((CKMETA) ? LFS3_I_CKMETA : 0)
|
||||
@ -1981,11 +1981,11 @@ code = '''
|
||||
}
|
||||
|
||||
#ifdef LFS3_GBMAP
|
||||
if (REBUILDGBMAP && (fsinfo.flags & LFS3_I_REBUILDGBMAP)) {
|
||||
if (REPOPGBMAP && (fsinfo.flags & LFS3_I_REPOPGBMAP)) {
|
||||
// we need an explicit traversal for this
|
||||
lfs3_trv_t trv;
|
||||
lfs3_trv_open(&lfs3, &trv,
|
||||
LFS3_T_RDWR | LFS3_T_REBUILDGBMAP) => 0;
|
||||
LFS3_T_RDWR | LFS3_T_REPOPGBMAP) => 0;
|
||||
while (true) {
|
||||
struct lfs3_tinfo tinfo;
|
||||
int err = lfs3_trv_read(&lfs3, &trv, &tinfo);
|
||||
@ -2037,9 +2037,9 @@ code = '''
|
||||
assert(fsinfo.flags == (
|
||||
((!MKCONSISTENT) ? LFS3_I_MKCONSISTENT : 0)
|
||||
| ((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
||||
| ((!REBUILDGBMAP)
|
||||
| ((!REPOPGBMAP)
|
||||
? ((GBMAP)
|
||||
? (LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1)
|
||||
? (LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1)
|
||||
& fsinfo.flags)
|
||||
: 0)
|
||||
: 0)
|
||||
@ -2057,10 +2057,10 @@ code = '''
|
||||
assert(fsinfo.flags == (
|
||||
LFS3_I_MKCONSISTENT
|
||||
| LFS3_I_LOOKAHEAD
|
||||
| ((REBUILDGBMAP)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1U)
|
||||
| ((REPOPGBMAP)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1U)
|
||||
: (GBMAP)
|
||||
? (LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1)
|
||||
? (LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1)
|
||||
& fsinfo.flags)
|
||||
: 0)
|
||||
| LFS3_I_COMPACT
|
||||
@ -2086,8 +2086,8 @@ code = '''
|
||||
if (!(fsinfo.flags & (
|
||||
((MKCONSISTENT) ? LFS3_I_MKCONSISTENT : 0)
|
||||
| ((LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
||||
| ((REBUILDGBMAP)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1)
|
||||
| ((REPOPGBMAP)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1)
|
||||
: 0)
|
||||
| ((COMPACT) ? LFS3_I_COMPACT : 0)
|
||||
| ((CKMETA) ? LFS3_I_CKMETA : 0)
|
||||
@ -2118,8 +2118,8 @@ code = '''
|
||||
if (!(fsinfo.flags & (
|
||||
((MKCONSISTENT) ? LFS3_I_MKCONSISTENT : 0)
|
||||
| ((LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
||||
| ((REBUILDGBMAP)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1)
|
||||
| ((REPOPGBMAP)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1)
|
||||
: 0)
|
||||
| ((COMPACT) ? LFS3_I_COMPACT : 0)
|
||||
| ((CKMETA) ? LFS3_I_CKMETA : 0)
|
||||
@ -2148,11 +2148,11 @@ code = '''
|
||||
}
|
||||
|
||||
#ifdef LFS3_GBMAP
|
||||
if (REBUILDGBMAP && (fsinfo.flags & LFS3_I_REBUILDGBMAP)) {
|
||||
if (REPOPGBMAP && (fsinfo.flags & LFS3_I_REPOPGBMAP)) {
|
||||
// we need an explicit traversal for this
|
||||
lfs3_trv_t trv;
|
||||
lfs3_trv_open(&lfs3, &trv,
|
||||
LFS3_T_RDWR | LFS3_T_REBUILDGBMAP) => 0;
|
||||
LFS3_T_RDWR | LFS3_T_REPOPGBMAP) => 0;
|
||||
while (true) {
|
||||
struct lfs3_tinfo tinfo;
|
||||
int err = lfs3_trv_read(&lfs3, &trv, &tinfo);
|
||||
@ -2204,9 +2204,9 @@ code = '''
|
||||
assert(fsinfo.flags == (
|
||||
((!MKCONSISTENT) ? LFS3_I_MKCONSISTENT : 0)
|
||||
| ((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
||||
| ((!REBUILDGBMAP)
|
||||
| ((!REPOPGBMAP)
|
||||
? ((GBMAP)
|
||||
? (LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1)
|
||||
? (LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1)
|
||||
& fsinfo.flags)
|
||||
: 0)
|
||||
: 0)
|
||||
@ -2225,14 +2225,14 @@ code = '''
|
||||
defines.N = 100
|
||||
defines.MKCONSISTENT = [false, true]
|
||||
defines.LOOKAHEAD = [false, true]
|
||||
defines.REBUILDGBMAP = [false, true]
|
||||
defines.REPOPGBMAP = [false, true]
|
||||
defines.COMPACT = [false, true]
|
||||
defines.CKMETA = [false, true]
|
||||
defines.CKDATA = [false, true]
|
||||
defines.GC_FLAGS = '''
|
||||
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
|
||||
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
|
||||
| ((REBUILDGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_REBUILDGBMAP, -1) : 0)
|
||||
| ((REPOPGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_REPOPGBMAP, -1) : 0)
|
||||
| ((COMPACT) ? LFS3_GC_COMPACT : 0)
|
||||
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
|
||||
@ -2248,7 +2248,7 @@ defines.SIZE = [
|
||||
'2*BLOCK_SIZE',
|
||||
'8*BLOCK_SIZE',
|
||||
]
|
||||
if = 'GBMAP || !REBUILDGBMAP'
|
||||
if = 'GBMAP || !REPOPGBMAP'
|
||||
ifdef = 'LFS3_GC'
|
||||
code = '''
|
||||
lfs3_t lfs3;
|
||||
@ -2300,14 +2300,14 @@ code = '''
|
||||
defines.N = 100
|
||||
defines.MKCONSISTENT = [false, true]
|
||||
defines.LOOKAHEAD = [false, true]
|
||||
defines.REBUILDGBMAP = [false, true]
|
||||
defines.REPOPGBMAP = [false, true]
|
||||
defines.COMPACT = [false, true]
|
||||
defines.CKMETA = [false, true]
|
||||
defines.CKDATA = [false, true]
|
||||
defines.GC_FLAGS = '''
|
||||
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
|
||||
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
|
||||
| ((REBUILDGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_REBUILDGBMAP, -1) : 0)
|
||||
| ((REPOPGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_REPOPGBMAP, -1) : 0)
|
||||
| ((COMPACT) ? LFS3_GC_COMPACT : 0)
|
||||
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
|
||||
@ -2323,7 +2323,7 @@ defines.SIZE = [
|
||||
'2*BLOCK_SIZE',
|
||||
'8*BLOCK_SIZE',
|
||||
]
|
||||
if = 'GBMAP || !REBUILDGBMAP'
|
||||
if = 'GBMAP || !REPOPGBMAP'
|
||||
ifdef = 'LFS3_GC'
|
||||
code = '''
|
||||
lfs3_t lfs3;
|
||||
@ -2382,7 +2382,7 @@ code = '''
|
||||
[cases.test_gc_spam_dir_many]
|
||||
defines.MKCONSISTENT = [false, true]
|
||||
defines.LOOKAHEAD = [false, true]
|
||||
defines.REBUILDGBMAP = [false, true]
|
||||
defines.REPOPGBMAP = [false, true]
|
||||
defines.COMPACT = [false, true]
|
||||
defines.CKMETA = [false, true]
|
||||
defines.CKDATA = [false, true]
|
||||
@ -2390,7 +2390,7 @@ defines.UNCK = [false, true]
|
||||
defines.GC_FLAGS = '''
|
||||
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
|
||||
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
|
||||
| ((REBUILDGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_REBUILDGBMAP, -1) : 0)
|
||||
| ((REPOPGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_REPOPGBMAP, -1) : 0)
|
||||
| ((COMPACT) ? LFS3_GC_COMPACT : 0)
|
||||
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
|
||||
@ -2399,7 +2399,7 @@ defines.GC_STEPS = [-1, 1, 2, 10, 100, 1000]
|
||||
# set compact thresh to minimum
|
||||
defines.GC_COMPACT_THRESH = 'BLOCK_SIZE/2'
|
||||
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256]
|
||||
if = 'GBMAP || !REBUILDGBMAP'
|
||||
if = 'GBMAP || !REPOPGBMAP'
|
||||
ifdef = 'LFS3_GC'
|
||||
code = '''
|
||||
// test creating directories
|
||||
@ -2492,7 +2492,7 @@ code = '''
|
||||
[cases.test_gc_spam_dir_fuzz]
|
||||
defines.MKCONSISTENT = [false, true]
|
||||
defines.LOOKAHEAD = [false, true]
|
||||
defines.REBUILDGBMAP = [false, true]
|
||||
defines.REPOPGBMAP = [false, true]
|
||||
defines.COMPACT = [false, true]
|
||||
defines.CKMETA = [false, true]
|
||||
defines.CKDATA = [false, true]
|
||||
@ -2500,7 +2500,7 @@ defines.UNCK = [false, true]
|
||||
defines.GC_FLAGS = '''
|
||||
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
|
||||
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
|
||||
| ((REBUILDGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_REBUILDGBMAP, -1) : 0)
|
||||
| ((REPOPGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_REPOPGBMAP, -1) : 0)
|
||||
| ((COMPACT) ? LFS3_GC_COMPACT : 0)
|
||||
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
|
||||
@ -2512,7 +2512,7 @@ defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256]
|
||||
defines.OPS = '2*N'
|
||||
defines.SEED = 42
|
||||
fuzz = 'SEED'
|
||||
if = 'GBMAP || !REBUILDGBMAP'
|
||||
if = 'GBMAP || !REPOPGBMAP'
|
||||
ifdef = 'LFS3_GC'
|
||||
code = '''
|
||||
// test fuzz with dirs
|
||||
@ -2673,7 +2673,7 @@ code = '''
|
||||
[cases.test_gc_spam_file_many]
|
||||
defines.MKCONSISTENT = [false, true]
|
||||
defines.LOOKAHEAD = [false, true]
|
||||
defines.REBUILDGBMAP = [false, true]
|
||||
defines.REPOPGBMAP = [false, true]
|
||||
defines.COMPACT = [false, true]
|
||||
defines.CKMETA = [false, true]
|
||||
defines.CKDATA = [false, true]
|
||||
@ -2681,7 +2681,7 @@ defines.UNCK = [false, true]
|
||||
defines.GC_FLAGS = '''
|
||||
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
|
||||
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
|
||||
| ((REBUILDGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_REBUILDGBMAP, -1) : 0)
|
||||
| ((REPOPGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_REPOPGBMAP, -1) : 0)
|
||||
| ((COMPACT) ? LFS3_GC_COMPACT : 0)
|
||||
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
|
||||
@ -2701,7 +2701,7 @@ defines.SIZE = [
|
||||
]
|
||||
if = [
|
||||
'(SIZE*N)/BLOCK_SIZE <= 32',
|
||||
'GBMAP || !REBUILDGBMAP',
|
||||
'GBMAP || !REPOPGBMAP',
|
||||
]
|
||||
ifdef = 'LFS3_GC'
|
||||
code = '''
|
||||
@ -2779,7 +2779,7 @@ code = '''
|
||||
[cases.test_gc_spam_file_fuzz]
|
||||
defines.MKCONSISTENT = [false, true]
|
||||
defines.LOOKAHEAD = [false, true]
|
||||
defines.REBUILDGBMAP = [false, true]
|
||||
defines.REPOPGBMAP = [false, true]
|
||||
defines.COMPACT = [false, true]
|
||||
defines.CKMETA = [false, true]
|
||||
defines.CKDATA = [false, true]
|
||||
@ -2787,7 +2787,7 @@ defines.UNCK = [false, true]
|
||||
defines.GC_FLAGS = '''
|
||||
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
|
||||
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
|
||||
| ((REBUILDGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_REBUILDGBMAP, -1) : 0)
|
||||
| ((REPOPGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_REPOPGBMAP, -1) : 0)
|
||||
| ((COMPACT) ? LFS3_GC_COMPACT : 0)
|
||||
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
|
||||
@ -2810,7 +2810,7 @@ defines.SEED = 42
|
||||
fuzz = 'SEED'
|
||||
if = [
|
||||
'(SIZE*N)/BLOCK_SIZE <= 16',
|
||||
'GBMAP || !REBUILDGBMAP',
|
||||
'GBMAP || !REPOPGBMAP',
|
||||
]
|
||||
ifdef = 'LFS3_GC'
|
||||
code = '''
|
||||
@ -3024,7 +3024,7 @@ code = '''
|
||||
[cases.test_gc_spam_fwrite_fuzz]
|
||||
defines.MKCONSISTENT = [false, true]
|
||||
defines.LOOKAHEAD = [false, true]
|
||||
defines.REBUILDGBMAP = [false, true]
|
||||
defines.REPOPGBMAP = [false, true]
|
||||
defines.COMPACT = [false, true]
|
||||
defines.CKMETA = [false, true]
|
||||
defines.CKDATA = [false, true]
|
||||
@ -3032,7 +3032,7 @@ defines.UNCK = [false, true]
|
||||
defines.GC_FLAGS = '''
|
||||
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
|
||||
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
|
||||
| ((REBUILDGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_REBUILDGBMAP, -1) : 0)
|
||||
| ((REPOPGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_REPOPGBMAP, -1) : 0)
|
||||
| ((COMPACT) ? LFS3_GC_COMPACT : 0)
|
||||
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
|
||||
@ -3062,7 +3062,7 @@ if = [
|
||||
'CHUNK <= SIZE',
|
||||
# this just saves testing time
|
||||
'SIZE <= 4*1024*FRAGMENT_SIZE',
|
||||
'GBMAP || !REBUILDGBMAP',
|
||||
'GBMAP || !REPOPGBMAP',
|
||||
]
|
||||
ifdef = 'LFS3_GC'
|
||||
code = '''
|
||||
@ -3187,7 +3187,7 @@ code = '''
|
||||
[cases.test_gc_spam_uz_fuzz]
|
||||
defines.MKCONSISTENT = [false, true]
|
||||
defines.LOOKAHEAD = [false, true]
|
||||
defines.REBUILDGBMAP = [false, true]
|
||||
defines.REPOPGBMAP = [false, true]
|
||||
defines.COMPACT = [false, true]
|
||||
defines.CKMETA = [false, true]
|
||||
defines.CKDATA = [false, true]
|
||||
@ -3195,7 +3195,7 @@ defines.UNCK = [false, true]
|
||||
defines.GC_FLAGS = '''
|
||||
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
|
||||
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
|
||||
| ((REBUILDGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_REBUILDGBMAP, -1) : 0)
|
||||
| ((REPOPGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_REPOPGBMAP, -1) : 0)
|
||||
| ((COMPACT) ? LFS3_GC_COMPACT : 0)
|
||||
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
|
||||
@ -3218,7 +3218,7 @@ defines.SEED = 42
|
||||
fuzz = 'SEED'
|
||||
if = [
|
||||
'(SIZE*N)/BLOCK_SIZE <= 16',
|
||||
'GBMAP || !REBUILDGBMAP',
|
||||
'GBMAP || !REPOPGBMAP',
|
||||
]
|
||||
ifdef = 'LFS3_GC'
|
||||
code = '''
|
||||
@ -3639,7 +3639,7 @@ code = '''
|
||||
[cases.test_gc_spam_uzd_fuzz]
|
||||
defines.MKCONSISTENT = [false, true]
|
||||
defines.LOOKAHEAD = [false, true]
|
||||
defines.REBUILDGBMAP = [false, true]
|
||||
defines.REPOPGBMAP = [false, true]
|
||||
defines.COMPACT = [false, true]
|
||||
defines.CKMETA = [false, true]
|
||||
defines.CKDATA = [false, true]
|
||||
@ -3647,7 +3647,7 @@ defines.UNCK = [false, true]
|
||||
defines.GC_FLAGS = '''
|
||||
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
|
||||
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
|
||||
| ((REBUILDGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_REBUILDGBMAP, -1) : 0)
|
||||
| ((REPOPGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_REPOPGBMAP, -1) : 0)
|
||||
| ((COMPACT) ? LFS3_GC_COMPACT : 0)
|
||||
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
|
||||
@ -3670,7 +3670,7 @@ defines.SEED = 42
|
||||
fuzz = 'SEED'
|
||||
if = [
|
||||
'(SIZE*N)/BLOCK_SIZE <= 16',
|
||||
'GBMAP || !REBUILDGBMAP',
|
||||
'GBMAP || !REPOPGBMAP',
|
||||
]
|
||||
ifdef = 'LFS3_GC'
|
||||
code = '''
|
||||
|
||||
@ -25,7 +25,7 @@ defines.CKMETAPARITY = [false, true]
|
||||
defines.CKDATACKSUMS = [false, true]
|
||||
defines.MKCONSISTENT = [false, true]
|
||||
defines.LOOKAHEAD = [false, true]
|
||||
defines.REBUILDGBMAP = [false, true]
|
||||
defines.REPOPGBMAP = [false, true]
|
||||
defines.COMPACT = [false, true]
|
||||
defines.CKMETA = [false, true]
|
||||
defines.CKDATA = [false, true]
|
||||
@ -39,8 +39,8 @@ if = [
|
||||
'LFS3_IFDEF_CKDATACKSUMS(true, !CKDATACKSUMS)',
|
||||
'!RDONLY || !MKCONSISTENT',
|
||||
'!RDONLY || !LOOKAHEAD',
|
||||
'LFS3_IFDEF_YES_GBMAP(true, !REBUILDGBMAP)',
|
||||
'!RDONLY || !REBUILDGBMAP',
|
||||
'LFS3_IFDEF_YES_GBMAP(true, !REPOPGBMAP)',
|
||||
'!RDONLY || !REPOPGBMAP',
|
||||
'!RDONLY || !COMPACT',
|
||||
]
|
||||
code = '''
|
||||
@ -62,8 +62,8 @@ code = '''
|
||||
: 0)
|
||||
| ((MKCONSISTENT) ? LFS3_M_MKCONSISTENT : 0)
|
||||
| ((LOOKAHEAD) ? LFS3_M_LOOKAHEAD : 0)
|
||||
| ((REBUILDGBMAP)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_M_REBUILDGBMAP, -1)
|
||||
| ((REPOPGBMAP)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_M_REPOPGBMAP, -1)
|
||||
: 0)
|
||||
| ((COMPACT) ? LFS3_M_COMPACT : 0)
|
||||
| ((CKMETA) ? LFS3_M_CKMETA : 0)
|
||||
@ -198,7 +198,7 @@ code = '''
|
||||
lfs3_unmount(&lfs3) => 0;
|
||||
'''
|
||||
|
||||
[cases.test_mount_t_rebuildgbmap]
|
||||
[cases.test_mount_t_repopgbmap]
|
||||
ifdef = 'LFS3_GBMAP'
|
||||
defines.CKMETA = [false, true]
|
||||
defines.CKDATA = [false, true]
|
||||
@ -243,18 +243,18 @@ code = '''
|
||||
assert(fsinfo.flags == (
|
||||
LFS3_I_MKCONSISTENT
|
||||
| LFS3_I_LOOKAHEAD
|
||||
| LFS3_I_REBUILDGBMAP
|
||||
| LFS3_I_REPOPGBMAP
|
||||
| LFS3_I_COMPACT
|
||||
| LFS3_I_CKMETA
|
||||
| LFS3_I_CKDATA
|
||||
| LFS3_IFDEF_GBMAP(LFS3_I_GBMAP, 0)));
|
||||
lfs3_unmount(&lfs3) => 0;
|
||||
|
||||
// with LFS3_M_REBUILDGBMAP, mount performs a gbmap rebuild
|
||||
// with LFS3_M_REPOPGBMAP, mount performs a gbmap repop
|
||||
lfs3_mount(&lfs3,
|
||||
LFS3_M_RDWR
|
||||
| LFS3_M_LOOKAHEAD
|
||||
| LFS3_M_REBUILDGBMAP
|
||||
| LFS3_M_REPOPGBMAP
|
||||
| ((CKMETA) ? LFS3_M_CKMETA : 0)
|
||||
| ((CKDATA) ? LFS3_M_CKDATA : 0),
|
||||
CFG) => 0;
|
||||
@ -319,7 +319,7 @@ code = '''
|
||||
LFS3_I_MKCONSISTENT
|
||||
| LFS3_I_LOOKAHEAD
|
||||
| LFS3_IFDEF_YES_GBMAP(
|
||||
(SIZE >= BLOCK_SIZE/4) ? LFS3_I_REBUILDGBMAP : 0,
|
||||
(SIZE >= BLOCK_SIZE/4) ? LFS3_I_REPOPGBMAP : 0,
|
||||
0)
|
||||
| LFS3_I_COMPACT
|
||||
| LFS3_I_CKMETA
|
||||
@ -340,7 +340,7 @@ code = '''
|
||||
LFS3_I_MKCONSISTENT
|
||||
| ((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
||||
| LFS3_IFDEF_YES_GBMAP(
|
||||
(SIZE >= BLOCK_SIZE/4) ? LFS3_I_REBUILDGBMAP : 0,
|
||||
(SIZE >= BLOCK_SIZE/4) ? LFS3_I_REPOPGBMAP : 0,
|
||||
0)
|
||||
// note ckdata implies ckmeta
|
||||
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
|
||||
@ -429,7 +429,7 @@ code = '''
|
||||
LFS3_I_MKCONSISTENT
|
||||
| LFS3_I_LOOKAHEAD
|
||||
| LFS3_IFDEF_YES_GBMAP(
|
||||
(ORPHANS >= 100) ? LFS3_I_REBUILDGBMAP : 0,
|
||||
(ORPHANS >= 100) ? LFS3_I_REPOPGBMAP : 0,
|
||||
0)
|
||||
| LFS3_I_COMPACT
|
||||
| LFS3_I_CKMETA
|
||||
@ -450,7 +450,7 @@ code = '''
|
||||
assert(fsinfo.flags == (
|
||||
((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
||||
| LFS3_IFDEF_YES_GBMAP(
|
||||
(ORPHANS >= 100) ? LFS3_I_REBUILDGBMAP : 0,
|
||||
(ORPHANS >= 100) ? LFS3_I_REPOPGBMAP : 0,
|
||||
0)
|
||||
| ((!COMPACT) ? LFS3_I_COMPACT : 0)
|
||||
// note ckdata implies ckmeta
|
||||
|
||||
@ -20,11 +20,11 @@ if = '''
|
||||
[cases.test_trvs_simple]
|
||||
defines.MKCONSISTENT = [false, true]
|
||||
defines.LOOKAHEAD = [false, true]
|
||||
defines.REBUILDGBMAP = [false, true]
|
||||
defines.REPOPGBMAP = [false, true]
|
||||
defines.COMPACT = [false, true]
|
||||
defines.CKMETA = [false, true]
|
||||
defines.CKDATA = [false, true]
|
||||
if = 'GBMAP || !REBUILDGBMAP'
|
||||
if = 'GBMAP || !REPOPGBMAP'
|
||||
code = '''
|
||||
lfs3_t lfs3;
|
||||
lfs3_format(&lfs3,
|
||||
@ -39,8 +39,8 @@ code = '''
|
||||
LFS3_T_RDWR
|
||||
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
|
||||
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
|
||||
| ((REBUILDGBMAP)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_T_REBUILDGBMAP, -1)
|
||||
| ((REPOPGBMAP)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_T_REPOPGBMAP, -1)
|
||||
: 0)
|
||||
| ((COMPACT) ? LFS3_T_COMPACT : 0)
|
||||
| ((CKMETA) ? LFS3_T_CKMETA : 0)
|
||||
@ -84,8 +84,8 @@ code = '''
|
||||
LFS3_T_RDWR
|
||||
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
|
||||
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
|
||||
| ((REBUILDGBMAP)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_T_REBUILDGBMAP, -1)
|
||||
| ((REPOPGBMAP)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_T_REPOPGBMAP, -1)
|
||||
: 0)
|
||||
| ((COMPACT) ? LFS3_T_COMPACT : 0)
|
||||
| ((CKMETA) ? LFS3_T_CKMETA : 0)
|
||||
@ -126,11 +126,11 @@ code = '''
|
||||
[cases.test_trvs_idempotent]
|
||||
defines.MKCONSISTENT = [false, true]
|
||||
defines.LOOKAHEAD = [false, true]
|
||||
defines.REBUILDGBMAP = [false, true]
|
||||
defines.REPOPGBMAP = [false, true]
|
||||
defines.COMPACT = [false, true]
|
||||
defines.CKMETA = [false, true]
|
||||
defines.CKDATA = [false, true]
|
||||
if = 'GBMAP || !REBUILDGBMAP'
|
||||
if = 'GBMAP || !REPOPGBMAP'
|
||||
code = '''
|
||||
lfs3_t lfs3;
|
||||
lfs3_format(&lfs3,
|
||||
@ -145,8 +145,8 @@ code = '''
|
||||
LFS3_T_RDWR
|
||||
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
|
||||
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
|
||||
| ((REBUILDGBMAP)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_T_REBUILDGBMAP, -1)
|
||||
| ((REPOPGBMAP)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_T_REPOPGBMAP, -1)
|
||||
: 0)
|
||||
| ((COMPACT) ? LFS3_T_COMPACT : 0)
|
||||
| ((CKMETA) ? LFS3_T_CKMETA : 0)
|
||||
@ -1773,11 +1773,11 @@ done:;
|
||||
[cases.test_trvs_flags]
|
||||
defines.MKCONSISTENT = [false, true]
|
||||
defines.LOOKAHEAD = [false, true]
|
||||
defines.REBUILDGBMAP = [false, true]
|
||||
defines.REPOPGBMAP = [false, true]
|
||||
defines.COMPACT = [false, true]
|
||||
defines.CKMETA = [false, true]
|
||||
defines.CKDATA = [false, true]
|
||||
if = 'GBMAP || !REBUILDGBMAP'
|
||||
if = 'GBMAP || !REPOPGBMAP'
|
||||
code = '''
|
||||
lfs3_t lfs3;
|
||||
lfs3_format(&lfs3,
|
||||
@ -1803,8 +1803,8 @@ code = '''
|
||||
LFS3_T_RDWR
|
||||
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
|
||||
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
|
||||
| ((REBUILDGBMAP)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_T_REBUILDGBMAP, -1)
|
||||
| ((REPOPGBMAP)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_T_REPOPGBMAP, -1)
|
||||
: 0)
|
||||
| ((COMPACT) ? LFS3_T_COMPACT : 0)
|
||||
| ((CKMETA) ? LFS3_T_CKMETA : 0)
|
||||
@ -2265,7 +2265,7 @@ code = '''
|
||||
assert(fsinfo.flags == (
|
||||
LFS3_I_LOOKAHEAD
|
||||
| ((GBMAP && SIZE >= BLOCK_SIZE/4)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1)
|
||||
: 0)
|
||||
| LFS3_I_COMPACT
|
||||
| LFS3_I_CKMETA
|
||||
@ -2357,7 +2357,7 @@ code = '''
|
||||
((!LOOKAHEAD || SIZE > FILE_CACHE_SIZE || SYNC)
|
||||
? LFS3_I_LOOKAHEAD : 0)
|
||||
| ((GBMAP && SIZE >= BLOCK_SIZE/4)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1)
|
||||
: 0)
|
||||
| LFS3_I_COMPACT
|
||||
| LFS3_I_CKMETA
|
||||
@ -2574,7 +2574,7 @@ code = '''
|
||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||
assert(fsinfo.flags == (
|
||||
LFS3_I_LOOKAHEAD
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
| LFS3_I_COMPACT
|
||||
| LFS3_I_CKMETA
|
||||
| LFS3_I_CKDATA
|
||||
@ -2680,7 +2680,7 @@ code = '''
|
||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||
assert(fsinfo.flags == (
|
||||
LFS3_I_LOOKAHEAD
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
| LFS3_I_COMPACT
|
||||
| LFS3_I_CKMETA
|
||||
| LFS3_I_CKDATA
|
||||
@ -2890,7 +2890,7 @@ code = '''
|
||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||
assert(fsinfo.flags == (
|
||||
LFS3_I_LOOKAHEAD
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
| LFS3_I_COMPACT
|
||||
| LFS3_I_CKMETA
|
||||
| LFS3_I_CKDATA
|
||||
@ -2998,7 +2998,7 @@ code = '''
|
||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||
assert(fsinfo.flags == (
|
||||
LFS3_I_LOOKAHEAD
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
| LFS3_I_COMPACT
|
||||
| LFS3_I_CKMETA
|
||||
| LFS3_I_CKDATA
|
||||
@ -3219,7 +3219,7 @@ code = '''
|
||||
assert(fsinfo.flags == (
|
||||
((DESYNC) ? LFS3_I_MKCONSISTENT : 0)
|
||||
| ((!(LOOKAHEAD && DESYNC)) ? LFS3_I_LOOKAHEAD : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
| LFS3_I_COMPACT
|
||||
// note ckdata implies ckmeta
|
||||
| ((!(CKMETA && DESYNC) && !(CKDATA && DESYNC))
|
||||
@ -3334,7 +3334,7 @@ code = '''
|
||||
assert(fsinfo.flags == (
|
||||
((DESYNC) ? LFS3_I_MKCONSISTENT : 0)
|
||||
| ((!(LOOKAHEAD && DESYNC)) ? LFS3_I_LOOKAHEAD : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
| LFS3_I_COMPACT
|
||||
// note ckdata implies ckmeta
|
||||
| ((!(CKMETA && DESYNC) && !(CKDATA && DESYNC))
|
||||
@ -3444,7 +3444,7 @@ code = '''
|
||||
assert(fsinfo.flags == (
|
||||
((DESYNC) ? LFS3_I_MKCONSISTENT : 0)
|
||||
| ((!(LOOKAHEAD && DESYNC)) ? LFS3_I_LOOKAHEAD : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
| LFS3_I_COMPACT
|
||||
// note ckdata implies ckmeta
|
||||
| ((!(CKMETA && DESYNC) && !(CKDATA && DESYNC))
|
||||
@ -3556,7 +3556,7 @@ code = '''
|
||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||
assert(fsinfo.flags == (
|
||||
LFS3_I_LOOKAHEAD
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
| LFS3_I_COMPACT
|
||||
| LFS3_I_CKMETA
|
||||
| LFS3_I_CKDATA
|
||||
@ -3665,7 +3665,7 @@ code = '''
|
||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||
assert(fsinfo.flags == (
|
||||
LFS3_I_LOOKAHEAD
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
| LFS3_I_COMPACT
|
||||
| LFS3_I_CKMETA
|
||||
| LFS3_I_CKDATA
|
||||
@ -3782,7 +3782,7 @@ code = '''
|
||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||
assert(fsinfo.flags == (
|
||||
LFS3_I_LOOKAHEAD
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
| LFS3_I_COMPACT
|
||||
| LFS3_I_CKMETA
|
||||
| LFS3_I_CKDATA
|
||||
@ -3910,7 +3910,7 @@ code = '''
|
||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||
assert(fsinfo.flags == (
|
||||
LFS3_I_LOOKAHEAD
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
| LFS3_I_COMPACT
|
||||
| LFS3_I_CKMETA
|
||||
| LFS3_I_CKDATA
|
||||
@ -4038,7 +4038,7 @@ code = '''
|
||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||
assert(fsinfo.flags == (
|
||||
LFS3_I_LOOKAHEAD
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
| LFS3_I_COMPACT
|
||||
| LFS3_I_CKMETA
|
||||
| LFS3_I_CKDATA
|
||||
@ -4153,7 +4153,7 @@ code = '''
|
||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||
assert(fsinfo.flags == (
|
||||
LFS3_I_LOOKAHEAD
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
| LFS3_I_COMPACT
|
||||
| LFS3_I_CKMETA
|
||||
| LFS3_I_CKDATA
|
||||
@ -4262,7 +4262,7 @@ code = '''
|
||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||
assert(fsinfo.flags == (
|
||||
LFS3_I_LOOKAHEAD
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
| LFS3_I_COMPACT
|
||||
| LFS3_I_CKMETA
|
||||
| LFS3_I_CKDATA
|
||||
@ -4386,7 +4386,7 @@ code = '''
|
||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||
assert(fsinfo.flags == (
|
||||
LFS3_I_LOOKAHEAD
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
| LFS3_I_COMPACT
|
||||
| LFS3_I_CKMETA
|
||||
| LFS3_I_CKDATA
|
||||
@ -4509,7 +4509,7 @@ code = '''
|
||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||
assert(fsinfo.flags == (
|
||||
LFS3_I_LOOKAHEAD
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
| LFS3_I_COMPACT
|
||||
| LFS3_I_CKMETA
|
||||
| LFS3_I_CKDATA
|
||||
@ -4685,7 +4685,7 @@ code = '''
|
||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||
assert(fsinfo.flags == (
|
||||
LFS3_I_LOOKAHEAD
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
| LFS3_I_COMPACT
|
||||
| LFS3_I_CKMETA
|
||||
| LFS3_I_CKDATA
|
||||
@ -4878,7 +4878,7 @@ code = '''
|
||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||
assert(fsinfo.flags == (
|
||||
LFS3_I_LOOKAHEAD
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
| LFS3_I_COMPACT
|
||||
| LFS3_I_CKMETA
|
||||
| LFS3_I_CKDATA
|
||||
@ -5065,7 +5065,7 @@ code = '''
|
||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||
assert(fsinfo.flags == (
|
||||
LFS3_I_LOOKAHEAD
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
| LFS3_I_COMPACT
|
||||
| LFS3_I_CKMETA
|
||||
| LFS3_I_CKDATA
|
||||
@ -5249,7 +5249,7 @@ code = '''
|
||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||
assert(fsinfo.flags == (
|
||||
LFS3_I_LOOKAHEAD
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
| LFS3_I_COMPACT
|
||||
| LFS3_I_CKMETA
|
||||
| LFS3_I_CKDATA
|
||||
@ -5440,7 +5440,7 @@ code = '''
|
||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||
assert(fsinfo.flags == (
|
||||
LFS3_I_LOOKAHEAD
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
| LFS3_I_COMPACT
|
||||
| LFS3_I_CKMETA
|
||||
| LFS3_I_CKDATA
|
||||
@ -5630,7 +5630,7 @@ code = '''
|
||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||
assert(fsinfo.flags == (
|
||||
LFS3_I_LOOKAHEAD
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
| LFS3_I_COMPACT
|
||||
| LFS3_I_CKMETA
|
||||
| LFS3_I_CKDATA
|
||||
@ -5831,7 +5831,7 @@ code = '''
|
||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||
assert(fsinfo.flags == (
|
||||
LFS3_I_LOOKAHEAD
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
| LFS3_I_COMPACT
|
||||
| LFS3_I_CKMETA
|
||||
| LFS3_I_CKDATA
|
||||
@ -6045,7 +6045,7 @@ code = '''
|
||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||
assert(fsinfo.flags == (
|
||||
LFS3_I_LOOKAHEAD
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
| LFS3_I_COMPACT
|
||||
| LFS3_I_CKMETA
|
||||
| LFS3_I_CKDATA
|
||||
@ -6089,7 +6089,7 @@ code = '''
|
||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||
assert(fsinfo.flags == (
|
||||
LFS3_I_LOOKAHEAD
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
| LFS3_I_COMPACT
|
||||
| LFS3_I_CKMETA
|
||||
| LFS3_I_CKDATA
|
||||
@ -6115,7 +6115,7 @@ code = '''
|
||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||
assert(fsinfo.flags == (
|
||||
((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
// note ckdata implies ckmeta
|
||||
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
|
||||
| ((!CKDATA) ? LFS3_I_CKDATA : 0)
|
||||
@ -6219,7 +6219,7 @@ code = '''
|
||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||
assert(fsinfo.flags == (
|
||||
LFS3_I_LOOKAHEAD
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
| LFS3_I_COMPACT
|
||||
| LFS3_I_CKMETA
|
||||
| LFS3_I_CKDATA
|
||||
@ -6243,7 +6243,7 @@ code = '''
|
||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||
assert(fsinfo.flags == (
|
||||
((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
// note ckdata implies ckmeta
|
||||
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
|
||||
| ((!CKDATA) ? LFS3_I_CKDATA : 0)
|
||||
@ -6386,7 +6386,7 @@ code = '''
|
||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||
assert(fsinfo.flags == (
|
||||
LFS3_I_LOOKAHEAD
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
| LFS3_I_COMPACT
|
||||
| LFS3_I_CKMETA
|
||||
| LFS3_I_CKDATA
|
||||
@ -6411,7 +6411,7 @@ code = '''
|
||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||
assert(fsinfo.flags == (
|
||||
((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
// note ckdata implies ckmeta
|
||||
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
|
||||
| ((!CKDATA) ? LFS3_I_CKDATA : 0)
|
||||
@ -6559,7 +6559,7 @@ code = '''
|
||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||
assert(fsinfo.flags == (
|
||||
LFS3_I_LOOKAHEAD
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
| LFS3_I_COMPACT
|
||||
| LFS3_I_CKMETA
|
||||
| LFS3_I_CKDATA
|
||||
@ -6616,7 +6616,7 @@ code = '''
|
||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||
assert(fsinfo.flags == (
|
||||
LFS3_I_LOOKAHEAD
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
| LFS3_I_COMPACT
|
||||
| LFS3_I_CKMETA
|
||||
| LFS3_I_CKDATA
|
||||
@ -6643,7 +6643,7 @@ code = '''
|
||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||
assert(fsinfo.flags == (
|
||||
((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
// note ckdata implies ckmeta
|
||||
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
|
||||
| ((!CKDATA) ? LFS3_I_CKDATA : 0)
|
||||
@ -6796,7 +6796,7 @@ code = '''
|
||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||
assert(fsinfo.flags == (
|
||||
LFS3_I_LOOKAHEAD
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
| LFS3_I_COMPACT
|
||||
| LFS3_I_CKMETA
|
||||
| LFS3_I_CKDATA
|
||||
@ -6858,7 +6858,7 @@ code = '''
|
||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||
assert(fsinfo.flags == (
|
||||
LFS3_I_LOOKAHEAD
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
| LFS3_I_COMPACT
|
||||
| LFS3_I_CKMETA
|
||||
| LFS3_I_CKDATA
|
||||
@ -6885,7 +6885,7 @@ code = '''
|
||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||
assert(fsinfo.flags == (
|
||||
((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
// note ckdata implies ckmeta
|
||||
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
|
||||
| ((!CKDATA) ? LFS3_I_CKDATA : 0)
|
||||
@ -7005,7 +7005,7 @@ code = '''
|
||||
((ORPHANS > 0) ? LFS3_I_MKCONSISTENT : 0)
|
||||
| LFS3_I_LOOKAHEAD
|
||||
| ((GBMAP && ORPHANS >= 100)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1)
|
||||
: 0)
|
||||
| LFS3_I_COMPACT
|
||||
| LFS3_I_CKMETA
|
||||
@ -7065,7 +7065,7 @@ code = '''
|
||||
assert(fsinfo.flags == (
|
||||
((!LOOKAHEAD || ORPHANS > 0) ? LFS3_I_LOOKAHEAD : 0)
|
||||
| ((GBMAP && ORPHANS >= 100)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1)
|
||||
: 0)
|
||||
| LFS3_I_COMPACT
|
||||
// note ckdata implies ckmeta
|
||||
@ -7223,7 +7223,7 @@ code = '''
|
||||
((ORPHANS >= 3) ? LFS3_I_MKCONSISTENT : 0)
|
||||
| ((!LOOKAHEAD || ORPHANS > 0) ? LFS3_I_LOOKAHEAD : 0)
|
||||
| ((GBMAP && ORPHANS >= 100)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1)
|
||||
: 0)
|
||||
| LFS3_I_COMPACT
|
||||
// note ckdata implies ckmeta
|
||||
@ -7328,7 +7328,7 @@ code = '''
|
||||
assert(fsinfo.flags == (
|
||||
((ORPHANS > 0) ? LFS3_I_MKCONSISTENT : 0)
|
||||
| LFS3_I_LOOKAHEAD
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
| LFS3_I_COMPACT
|
||||
| LFS3_I_CKMETA
|
||||
| LFS3_I_CKDATA
|
||||
@ -7400,7 +7400,7 @@ code = '''
|
||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||
assert(fsinfo.flags == (
|
||||
((!LOOKAHEAD || ORPHANS > 0) ? LFS3_I_LOOKAHEAD : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
| LFS3_I_COMPACT
|
||||
// note ckdata implies ckmeta
|
||||
| (((!CKMETA && !CKDATA) || ORPHANS > 0) ? LFS3_I_CKMETA : 0)
|
||||
@ -7504,7 +7504,7 @@ code = '''
|
||||
assert(fsinfo.flags == (
|
||||
((ORPHANS > 0) ? LFS3_I_MKCONSISTENT : 0)
|
||||
| LFS3_I_LOOKAHEAD
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
| LFS3_I_COMPACT
|
||||
| LFS3_I_CKMETA
|
||||
| LFS3_I_CKDATA
|
||||
@ -7576,7 +7576,7 @@ code = '''
|
||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||
assert(fsinfo.flags == (
|
||||
((!LOOKAHEAD || ORPHANS > 0) ? LFS3_I_LOOKAHEAD : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
| LFS3_I_COMPACT
|
||||
// note ckdata implies ckmeta
|
||||
| (((!CKMETA && !CKDATA) || ORPHANS > 0) ? LFS3_I_CKMETA : 0)
|
||||
@ -7681,7 +7681,7 @@ code = '''
|
||||
assert(fsinfo.flags == (
|
||||
((ORPHANS > 0) ? LFS3_I_MKCONSISTENT : 0)
|
||||
| LFS3_I_LOOKAHEAD
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
| LFS3_I_COMPACT
|
||||
| LFS3_I_CKMETA
|
||||
| LFS3_I_CKDATA
|
||||
@ -7761,7 +7761,7 @@ code = '''
|
||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||
assert(fsinfo.flags == (
|
||||
((!LOOKAHEAD || ORPHANS > 0) ? LFS3_I_LOOKAHEAD : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
| LFS3_I_COMPACT
|
||||
// note ckdata implies ckmeta
|
||||
| (((!CKMETA && !CKDATA) || ORPHANS > 0) ? LFS3_I_CKMETA : 0)
|
||||
@ -7866,7 +7866,7 @@ code = '''
|
||||
assert(fsinfo.flags == (
|
||||
((ORPHANS > 0) ? LFS3_I_MKCONSISTENT : 0)
|
||||
| LFS3_I_LOOKAHEAD
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
| LFS3_I_COMPACT
|
||||
| LFS3_I_CKMETA
|
||||
| LFS3_I_CKDATA
|
||||
@ -7946,7 +7946,7 @@ code = '''
|
||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||
assert(fsinfo.flags == (
|
||||
((!LOOKAHEAD || ORPHANS > 0) ? LFS3_I_LOOKAHEAD : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1) : 0)
|
||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1) : 0)
|
||||
| LFS3_I_COMPACT
|
||||
// note ckdata implies ckmeta
|
||||
| (((!CKMETA && !CKDATA) || ORPHANS > 0) ? LFS3_I_CKMETA : 0)
|
||||
@ -8070,7 +8070,7 @@ code = '''
|
||||
((ORPHANS > 0) ? LFS3_I_MKCONSISTENT : 0)
|
||||
| LFS3_I_LOOKAHEAD
|
||||
| ((GBMAP && ORPHANS >= 100)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1)
|
||||
: 0)
|
||||
| LFS3_I_COMPACT
|
||||
| LFS3_I_CKMETA
|
||||
@ -8135,7 +8135,7 @@ code = '''
|
||||
assert(fsinfo.flags == (
|
||||
LFS3_I_LOOKAHEAD
|
||||
| ((GBMAP && ORPHANS >= 100)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1)
|
||||
: 0)
|
||||
| LFS3_I_COMPACT
|
||||
| LFS3_I_CKMETA
|
||||
@ -8162,7 +8162,7 @@ code = '''
|
||||
assert(fsinfo.flags == (
|
||||
((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
||||
| ((GBMAP && ORPHANS >= 100)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1)
|
||||
: 0)
|
||||
// note ckdata implies ckmeta
|
||||
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
|
||||
@ -8347,7 +8347,7 @@ code = '''
|
||||
((ORPHANS >= 3) ? LFS3_I_MKCONSISTENT : 0)
|
||||
| LFS3_I_LOOKAHEAD
|
||||
| ((GBMAP && ORPHANS >= 100)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_I_REBUILDGBMAP, -1)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_I_REPOPGBMAP, -1)
|
||||
: 0)
|
||||
| LFS3_I_COMPACT
|
||||
| LFS3_I_CKMETA
|
||||
@ -8396,14 +8396,14 @@ code = '''
|
||||
defines.STEPS = [1, 2, 4, 8, 16, 32, 64, 128]
|
||||
defines.MKCONSISTENT = [false, true]
|
||||
defines.LOOKAHEAD = [false, true]
|
||||
defines.REBUILDGBMAP = [false, true]
|
||||
defines.REPOPGBMAP = [false, true]
|
||||
defines.COMPACT = [false, true]
|
||||
defines.CKMETA = [true]
|
||||
defines.CKDATA = [true]
|
||||
# set compact thresh to minimum
|
||||
defines.GC_COMPACT_THRESH = 'BLOCK_SIZE/2'
|
||||
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256]
|
||||
if = 'GBMAP || !REBUILDGBMAP'
|
||||
if = 'GBMAP || !REPOPGBMAP'
|
||||
code = '''
|
||||
// test creating directories
|
||||
lfs3_t lfs3;
|
||||
@ -8419,8 +8419,8 @@ code = '''
|
||||
LFS3_T_RDWR
|
||||
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
|
||||
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
|
||||
| ((REBUILDGBMAP)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_T_REBUILDGBMAP, -1)
|
||||
| ((REPOPGBMAP)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_T_REPOPGBMAP, -1)
|
||||
: 0)
|
||||
| ((COMPACT) ? LFS3_T_COMPACT : 0)
|
||||
| ((CKMETA) ? LFS3_T_CKMETA : 0)
|
||||
@ -8515,7 +8515,7 @@ code = '''
|
||||
defines.STEPS = [1, 2, 4, 8, 16, 32, 64, 128]
|
||||
defines.MKCONSISTENT = [false, true]
|
||||
defines.LOOKAHEAD = [false, true]
|
||||
defines.REBUILDGBMAP = [false, true]
|
||||
defines.REPOPGBMAP = [false, true]
|
||||
defines.COMPACT = [false, true]
|
||||
defines.CKMETA = [true]
|
||||
defines.CKDATA = [true]
|
||||
@ -8525,7 +8525,7 @@ defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256]
|
||||
defines.OPS = '2*N'
|
||||
defines.SEED = 42
|
||||
fuzz = 'SEED'
|
||||
if = 'GBMAP || !REBUILDGBMAP'
|
||||
if = 'GBMAP || !REPOPGBMAP'
|
||||
code = '''
|
||||
// test fuzz with dirs
|
||||
lfs3_t lfs3;
|
||||
@ -8545,8 +8545,8 @@ code = '''
|
||||
LFS3_T_RDWR
|
||||
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
|
||||
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
|
||||
| ((REBUILDGBMAP)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_T_REBUILDGBMAP, -1)
|
||||
| ((REPOPGBMAP)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_T_REPOPGBMAP, -1)
|
||||
: 0)
|
||||
| ((COMPACT) ? LFS3_T_COMPACT : 0)
|
||||
| ((CKMETA) ? LFS3_T_CKMETA : 0)
|
||||
@ -8705,7 +8705,7 @@ code = '''
|
||||
defines.STEPS = [1, 2, 4, 8, 16, 32, 64, 128]
|
||||
defines.MKCONSISTENT = [false, true]
|
||||
defines.LOOKAHEAD = [false, true]
|
||||
defines.REBUILDGBMAP = [false, true]
|
||||
defines.REPOPGBMAP = [false, true]
|
||||
defines.COMPACT = [false, true]
|
||||
defines.CKMETA = [true]
|
||||
defines.CKDATA = [true]
|
||||
@ -8723,7 +8723,7 @@ defines.SIZE = [
|
||||
]
|
||||
if = [
|
||||
'(SIZE*N)/BLOCK_SIZE <= 32',
|
||||
'GBMAP || !REBUILDGBMAP',
|
||||
'GBMAP || !REPOPGBMAP',
|
||||
]
|
||||
code = '''
|
||||
// test creating files
|
||||
@ -8740,8 +8740,8 @@ code = '''
|
||||
LFS3_T_RDWR
|
||||
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
|
||||
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
|
||||
| ((REBUILDGBMAP)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_T_REBUILDGBMAP, -1)
|
||||
| ((REPOPGBMAP)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_T_REPOPGBMAP, -1)
|
||||
: 0)
|
||||
| ((COMPACT) ? LFS3_T_COMPACT : 0)
|
||||
| ((CKMETA) ? LFS3_T_CKMETA : 0)
|
||||
@ -8820,7 +8820,7 @@ code = '''
|
||||
defines.STEPS = [1, 2, 4, 8, 16, 32, 64, 128]
|
||||
defines.MKCONSISTENT = [false, true]
|
||||
defines.LOOKAHEAD = [false, true]
|
||||
defines.REBUILDGBMAP = [false, true]
|
||||
defines.REPOPGBMAP = [false, true]
|
||||
defines.COMPACT = [false, true]
|
||||
defines.CKMETA = [true]
|
||||
defines.CKDATA = [true]
|
||||
@ -8841,7 +8841,7 @@ defines.SEED = 42
|
||||
fuzz = 'SEED'
|
||||
if = [
|
||||
'(SIZE*N)/BLOCK_SIZE <= 16',
|
||||
'GBMAP || !REBUILDGBMAP',
|
||||
'GBMAP || !REPOPGBMAP',
|
||||
]
|
||||
code = '''
|
||||
// test fuzz with files
|
||||
@ -8863,8 +8863,8 @@ code = '''
|
||||
LFS3_T_RDWR
|
||||
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
|
||||
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
|
||||
| ((REBUILDGBMAP)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_T_REBUILDGBMAP, -1)
|
||||
| ((REPOPGBMAP)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_T_REPOPGBMAP, -1)
|
||||
: 0)
|
||||
| ((COMPACT) ? LFS3_T_COMPACT : 0)
|
||||
| ((CKMETA) ? LFS3_T_CKMETA : 0)
|
||||
@ -9074,7 +9074,7 @@ code = '''
|
||||
defines.STEPS = [1, 2, 4, 8, 16, 32, 64, 128]
|
||||
defines.MKCONSISTENT = [false, true]
|
||||
defines.LOOKAHEAD = [false, true]
|
||||
defines.REBUILDGBMAP = [false, true]
|
||||
defines.REPOPGBMAP = [false, true]
|
||||
defines.COMPACT = [false, true]
|
||||
defines.CKMETA = [true]
|
||||
defines.CKDATA = [true]
|
||||
@ -9102,7 +9102,7 @@ if = [
|
||||
'CHUNK <= SIZE',
|
||||
# this just saves testing time
|
||||
'SIZE <= 4*1024*FRAGMENT_SIZE',
|
||||
'GBMAP || !REBUILDGBMAP',
|
||||
'GBMAP || !REPOPGBMAP',
|
||||
]
|
||||
code = '''
|
||||
// test with complex file writes
|
||||
@ -9147,8 +9147,8 @@ code = '''
|
||||
LFS3_T_RDWR
|
||||
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
|
||||
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
|
||||
| ((REBUILDGBMAP)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_T_REBUILDGBMAP, -1)
|
||||
| ((REPOPGBMAP)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_T_REPOPGBMAP, -1)
|
||||
: 0)
|
||||
| ((COMPACT) ? LFS3_T_COMPACT : 0)
|
||||
| ((CKMETA) ? LFS3_T_CKMETA : 0)
|
||||
@ -9246,7 +9246,7 @@ code = '''
|
||||
defines.STEPS = [1, 2, 4, 8, 16, 32, 64, 128]
|
||||
defines.MKCONSISTENT = [false, true]
|
||||
defines.LOOKAHEAD = [false, true]
|
||||
defines.REBUILDGBMAP = [false, true]
|
||||
defines.REPOPGBMAP = [false, true]
|
||||
defines.COMPACT = [false, true]
|
||||
defines.CKMETA = [true]
|
||||
defines.CKDATA = [true]
|
||||
@ -9267,7 +9267,7 @@ defines.SEED = 42
|
||||
fuzz = 'SEED'
|
||||
if = [
|
||||
'(SIZE*N)/BLOCK_SIZE <= 16',
|
||||
'GBMAP || !REBUILDGBMAP',
|
||||
'GBMAP || !REPOPGBMAP',
|
||||
]
|
||||
code = '''
|
||||
// test with uncreats, zombies, etc
|
||||
@ -9300,8 +9300,8 @@ code = '''
|
||||
LFS3_T_RDWR
|
||||
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
|
||||
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
|
||||
| ((REBUILDGBMAP)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_T_REBUILDGBMAP, -1)
|
||||
| ((REPOPGBMAP)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_T_REPOPGBMAP, -1)
|
||||
: 0)
|
||||
| ((COMPACT) ? LFS3_T_COMPACT : 0)
|
||||
| ((CKMETA) ? LFS3_T_CKMETA : 0)
|
||||
@ -9707,7 +9707,7 @@ code = '''
|
||||
defines.STEPS = [1, 2, 4, 8, 16, 32, 64, 128]
|
||||
defines.MKCONSISTENT = [false, true]
|
||||
defines.LOOKAHEAD = [false, true]
|
||||
defines.REBUILDGBMAP = [false, true]
|
||||
defines.REPOPGBMAP = [false, true]
|
||||
defines.COMPACT = [false, true]
|
||||
defines.CKMETA = [true]
|
||||
defines.CKDATA = [true]
|
||||
@ -9728,7 +9728,7 @@ defines.SEED = 42
|
||||
fuzz = 'SEED'
|
||||
if = [
|
||||
'(SIZE*N)/BLOCK_SIZE <= 16',
|
||||
'GBMAP || !REBUILDGBMAP',
|
||||
'GBMAP || !REPOPGBMAP',
|
||||
]
|
||||
code = '''
|
||||
// test with uncreats, zombies, dirs, etc
|
||||
@ -9762,8 +9762,8 @@ code = '''
|
||||
LFS3_T_RDWR
|
||||
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
|
||||
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
|
||||
| ((REBUILDGBMAP)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_T_REBUILDGBMAP, -1)
|
||||
| ((REPOPGBMAP)
|
||||
? LFS3_IFDEF_GBMAP(LFS3_T_REPOPGBMAP, -1)
|
||||
: 0)
|
||||
| ((COMPACT) ? LFS3_T_COMPACT : 0)
|
||||
| ((CKMETA) ? LFS3_T_CKMETA : 0)
|
||||
|
||||
Reference in New Issue
Block a user