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:
@@ -7226,15 +7226,6 @@ static inline bool lfs3_t_islookahead(uint32_t flags) {
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline bool lfs3_t_islookgbmap(uint32_t flags) {
|
|
||||||
(void)flags;
|
|
||||||
#if !defined(LFS3_RDONLY) && defined(LFS3_GBMAP)
|
|
||||||
return flags & LFS3_T_LOOKGBMAP;
|
|
||||||
#else
|
|
||||||
return false;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline bool lfs3_t_compactmeta(uint32_t flags) {
|
static inline bool lfs3_t_compactmeta(uint32_t flags) {
|
||||||
(void)flags;
|
(void)flags;
|
||||||
#ifndef LFS3_RDONLY
|
#ifndef LFS3_RDONLY
|
||||||
@@ -10259,6 +10250,8 @@ eot:;
|
|||||||
// needed in lfs3_mtree_gc
|
// needed in lfs3_mtree_gc
|
||||||
static int lfs3_mdir_mkconsistent(lfs3_t *lfs3, lfs3_mdir_t *mdir);
|
static int lfs3_mdir_mkconsistent(lfs3_t *lfs3, lfs3_mdir_t *mdir);
|
||||||
static inline void lfs3_alloc_ckpoint_(lfs3_t *lfs3);
|
static inline void lfs3_alloc_ckpoint_(lfs3_t *lfs3);
|
||||||
|
static inline bool lfs3_alloc_canlookahead(const lfs3_t *lfs3);
|
||||||
|
static inline bool lfs3_alloc_canlookgbmap(const lfs3_t *lfs3);
|
||||||
static void lfs3_alloc_adopt(lfs3_t *lfs3, lfs3_block_t known);
|
static void lfs3_alloc_adopt(lfs3_t *lfs3, lfs3_block_t known);
|
||||||
static int lfs3_gbmap_zero(lfs3_t *lfs3, lfs3_btree_t *gbmap);
|
static int lfs3_gbmap_zero(lfs3_t *lfs3, lfs3_btree_t *gbmap);
|
||||||
static int lfs3_gbmap_markbptr(lfs3_t *lfs3, lfs3_btree_t *gbmap,
|
static int lfs3_gbmap_markbptr(lfs3_t *lfs3, lfs3_btree_t *gbmap,
|
||||||
@@ -10274,49 +10267,57 @@ static lfs3_stag_t lfs3_mtree_gc(lfs3_t *lfs3, lfs3_mgc_t *mgc,
|
|||||||
// start of traversal?
|
// start of traversal?
|
||||||
if (mgc->t.h.mdir.mid == LFS3_MID_MROOTANCHOR) {
|
if (mgc->t.h.mdir.mid == LFS3_MID_MROOTANCHOR) {
|
||||||
#ifndef LFS3_RDONLY
|
#ifndef LFS3_RDONLY
|
||||||
// checkpoint the allocator to maximize any lookahead scans
|
// setup lookahead stuff
|
||||||
//
|
|
||||||
// note we try to repopupate even if the lookahead flag isn't
|
|
||||||
// set because there's no real downside
|
|
||||||
if (lfs3_t_islookahead(mgc->t.h.flags)
|
if (lfs3_t_islookahead(mgc->t.h.flags)
|
||||||
&& !lfs3_t_ismtreeonly(mgc->t.h.flags)
|
&& !lfs3_t_ismtreeonly(mgc->t.h.flags)
|
||||||
&& !lfs3_t_isckpointed(mgc->t.h.flags)) {
|
&& !lfs3_t_isckpointed(mgc->t.h.flags)) {
|
||||||
lfs3_alloc_ckpoint_(lfs3);
|
// create a new gbmap snapshot?
|
||||||
// keep our own ckpointed flag clear
|
|
||||||
mgc->t.h.flags &= ~LFS3_t_CKPOINTED & ~LFS3_t_DIRTY;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !defined(LFS3_RDONLY) && defined(LFS3_GBMAP)
|
|
||||||
// create a new gbmap snapshot
|
|
||||||
//
|
|
||||||
// note we _don't_ try to repopulate if the lookgbmap flag isn't
|
|
||||||
// set because repopulating the gbmap requires disk writes and
|
|
||||||
// is potentially destructive
|
|
||||||
//
|
|
||||||
// note because we bail as soon as a ckpoint is triggered
|
|
||||||
// (lfs3_t_isckpointed), we don't need to include this snapshot
|
|
||||||
// in traversals, the ckpointed flag also means we don't need to
|
|
||||||
// worry about this repopulation condition becoming true later
|
|
||||||
if (lfs3_t_islookgbmap(mgc->t.h.flags)
|
|
||||||
&& lfs3_f_isgbmap(lfs3->flags)
|
|
||||||
&& lfs3_t_islookgbmap(lfs3->flags)
|
|
||||||
&& !lfs3_t_ismtreeonly(mgc->t.h.flags)
|
|
||||||
&& !lfs3_t_isckpointed(mgc->t.h.flags)) {
|
|
||||||
// at least checkpoint the lookahead buffer
|
|
||||||
lfs3_alloc_ckpoint_(lfs3);
|
|
||||||
|
|
||||||
// create a copy of the gbmap
|
|
||||||
mgc->gbmap_ = lfs3->gbmap.b;
|
|
||||||
|
|
||||||
// mark any in-use blocks as free
|
|
||||||
//
|
//
|
||||||
// we do this instead of creating a new gbmap to (1) preserve any
|
// unfortunate it's not really possible to repopulate both
|
||||||
// erased/bad info and (2) try to best use any available
|
// the lookahead buffer and gbmap at the same time, so
|
||||||
// erased-state
|
// decide on one here
|
||||||
int err = lfs3_gbmap_zero(lfs3, &mgc->gbmap_);
|
if (LFS3_IFDEF_GBMAP(
|
||||||
if (err) {
|
lfs3_f_isgbmap(lfs3->flags)
|
||||||
return err;
|
// don't try to repopulate if above
|
||||||
|
// gc_lookgbmap_thresh, unlike the lookahead
|
||||||
|
// buffer, repopulating the gbmap writes to
|
||||||
|
// disk!
|
||||||
|
&& lfs3_alloc_canlookgbmap(lfs3)
|
||||||
|
// prioritize the lookahead buffer if
|
||||||
|
// gc_lookahead_thresh is triggered
|
||||||
|
&& !lfs3_alloc_canlookahead(lfs3),
|
||||||
|
false)) {
|
||||||
|
#ifdef LFS3_GBMAP
|
||||||
|
// lfs3_gbmap_zero may allocate, so checkpoint the
|
||||||
|
// lookahead buffer
|
||||||
|
lfs3_alloc_ckpoint_(lfs3);
|
||||||
|
|
||||||
|
// create a copy of the gbmap
|
||||||
|
mgc->gbmap_ = lfs3->gbmap.b;
|
||||||
|
|
||||||
|
// mark any in-use blocks as free
|
||||||
|
//
|
||||||
|
// we do this instead of creating a new gbmap to
|
||||||
|
// (1) preserve any erased/bad info and (2) try to best
|
||||||
|
// use any available erased-state
|
||||||
|
int err = lfs3_gbmap_zero(lfs3, &mgc->gbmap_);
|
||||||
|
if (err) {
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// checkpoint the allocator to maximize any lookahead scans
|
||||||
|
//
|
||||||
|
// note we try to repopulate even if the lookahead flag isn't
|
||||||
|
// set because there's no real downside
|
||||||
|
} else {
|
||||||
|
lfs3_alloc_ckpoint_(lfs3);
|
||||||
|
|
||||||
|
#ifdef LFS3_GBMAP
|
||||||
|
// use weight=0 to indicate we're populating the
|
||||||
|
// lookahead buffer and not the gbmap
|
||||||
|
mgc->gbmap_.r.weight = 0;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
// keep our own ckpointed flag clear
|
// keep our own ckpointed flag clear
|
||||||
@@ -10337,27 +10338,25 @@ again:;
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifndef LFS3_RDONLY
|
#ifndef LFS3_RDONLY
|
||||||
// mark in-use blocks in lookahead?
|
// mark in-use blocks?
|
||||||
if (lfs3_t_islookahead(mgc->t.h.flags)
|
if (lfs3_t_islookahead(mgc->t.h.flags)
|
||||||
&& !lfs3_t_ismtreeonly(mgc->t.h.flags)
|
&& !lfs3_t_ismtreeonly(mgc->t.h.flags)
|
||||||
&& !lfs3_t_isckpointed(mgc->t.h.flags)) {
|
&& !lfs3_t_isckpointed(mgc->t.h.flags)) {
|
||||||
lfs3_alloc_markinusebptr(lfs3, tag, bptr_);
|
// mark in-use blocks in gbmap?
|
||||||
}
|
if (LFS3_IFDEF_GBMAP(mgc->gbmap_.r.weight != 0, false)) {
|
||||||
|
#ifdef LFS3_GBMAP
|
||||||
|
int err = lfs3_gbmap_markbptr(lfs3, &mgc->gbmap_, tag, bptr_,
|
||||||
|
LFS3_TAG_BMINUSE);
|
||||||
|
if (err) {
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
// mark in-use blocks in gbmap?
|
// mark in-use blocks in lookahead buffer?
|
||||||
#ifdef LFS3_GBMAP
|
} else {
|
||||||
if (lfs3_t_islookgbmap(mgc->t.h.flags)
|
lfs3_alloc_markinusebptr(lfs3, tag, bptr_);
|
||||||
&& lfs3_f_isgbmap(lfs3->flags)
|
|
||||||
&& lfs3_t_islookgbmap(lfs3->flags)
|
|
||||||
&& !lfs3_t_ismtreeonly(mgc->t.h.flags)
|
|
||||||
&& !lfs3_t_isckpointed(mgc->t.h.flags)) {
|
|
||||||
int err = lfs3_gbmap_markbptr(lfs3, &mgc->gbmap_, tag, bptr_,
|
|
||||||
LFS3_TAG_BMINUSE);
|
|
||||||
if (err) {
|
|
||||||
return err;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
// mkconsistencing mdirs?
|
// mkconsistencing mdirs?
|
||||||
if (lfs3_t_ismkconsistent(mgc->t.h.flags)
|
if (lfs3_t_ismkconsistent(mgc->t.h.flags)
|
||||||
@@ -10419,33 +10418,24 @@ again:;
|
|||||||
|
|
||||||
eot:;
|
eot:;
|
||||||
#ifndef LFS3_RDONLY
|
#ifndef LFS3_RDONLY
|
||||||
// was gbmap scan successful?
|
|
||||||
//
|
|
||||||
// this is structured this way because only one repopulation
|
|
||||||
// scan can succeed at a time, if gbmap succeeds it invalidates the
|
|
||||||
// lookahead scan with the new gbmap
|
|
||||||
//
|
|
||||||
// gbmap takes priority because it actually writes to disk
|
|
||||||
if (LFS3_IFDEF_GBMAP(
|
|
||||||
lfs3_t_islookgbmap(mgc->t.h.flags)
|
|
||||||
&& lfs3_f_isgbmap(lfs3->flags)
|
|
||||||
&& lfs3_t_islookgbmap(lfs3->flags)
|
|
||||||
&& !lfs3_t_ismtreeonly(mgc->t.h.flags)
|
|
||||||
&& !lfs3_t_isckpointed(mgc->t.h.flags),
|
|
||||||
false)) {
|
|
||||||
#ifdef LFS3_GBMAP
|
|
||||||
int err = lfs3_alloc_adoptgbmap(lfs3, &mgc->gbmap_,
|
|
||||||
lfs3->lookahead.ckpoint);
|
|
||||||
if (err) {
|
|
||||||
return err;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// was lookahead scan successful?
|
// was lookahead scan successful?
|
||||||
} else if (lfs3_t_islookahead(mgc->t.h.flags)
|
if (lfs3_t_islookahead(mgc->t.h.flags)
|
||||||
&& !lfs3_t_ismtreeonly(mgc->t.h.flags)
|
&& !lfs3_t_ismtreeonly(mgc->t.h.flags)
|
||||||
&& !lfs3_t_isckpointed(mgc->t.h.flags)) {
|
&& !lfs3_t_isckpointed(mgc->t.h.flags)) {
|
||||||
lfs3_alloc_adopt(lfs3, lfs3->lookahead.ckpoint);
|
// was gbmap scan successful?
|
||||||
|
if (LFS3_IFDEF_GBMAP(mgc->gbmap_.r.weight != 0, false)) {
|
||||||
|
#ifdef LFS3_GBMAP
|
||||||
|
int err = lfs3_alloc_adoptgbmap(lfs3, &mgc->gbmap_,
|
||||||
|
lfs3->lookahead.ckpoint);
|
||||||
|
if (err) {
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// was lookahead scan successful?
|
||||||
|
} else {
|
||||||
|
lfs3_alloc_adopt(lfs3, lfs3->lookahead.ckpoint);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// was mkconsistent successful?
|
// was mkconsistent successful?
|
||||||
@@ -10793,7 +10783,7 @@ static int lfs3_alloc_lookgbmap(lfs3_t *lfs3);
|
|||||||
//
|
//
|
||||||
// blocks are allocated at most once, and never reallocated, between
|
// blocks are allocated at most once, and never reallocated, between
|
||||||
// checkpoints
|
// checkpoints
|
||||||
#if !defined(LFS3_RDONLY)
|
#ifndef LFS3_RDONLY
|
||||||
static inline int lfs3_alloc_ckpoint(lfs3_t *lfs3) {
|
static inline int lfs3_alloc_ckpoint(lfs3_t *lfs3) {
|
||||||
// checkpoint the allocator
|
// checkpoint the allocator
|
||||||
lfs3_alloc_ckpoint_(lfs3);
|
lfs3_alloc_ckpoint_(lfs3);
|
||||||
@@ -10819,9 +10809,19 @@ static inline int lfs3_alloc_ckpoint(lfs3_t *lfs3) {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// can we repopulate the lookahead buffer?
|
// can we repopulate the lookahead buffer?
|
||||||
#if !defined(LFS3_RDONLY)
|
#ifndef LFS3_RDONLY
|
||||||
static inline bool lfs3_alloc_canlookahead(const lfs3_t *lfs3) {
|
static inline bool lfs3_alloc_canlookahead(const lfs3_t *lfs3) {
|
||||||
return lfs3->lookahead.known
|
// below gc_lookahead_thresh?
|
||||||
|
return lfs3_max(
|
||||||
|
lfs3->lookahead.known,
|
||||||
|
// don't bother if we have more information in our
|
||||||
|
// gbmap, in theory the lookahead buffer is rarely used
|
||||||
|
// if a gbmap is present
|
||||||
|
LFS3_IFDEF_GBMAP(
|
||||||
|
(lfs3_f_isgbmap(lfs3->flags))
|
||||||
|
? lfs3->gbmap.known
|
||||||
|
: 0,
|
||||||
|
0))
|
||||||
<= lfs3_min(
|
<= lfs3_min(
|
||||||
lfs3->cfg->gc_lookahead_thresh,
|
lfs3->cfg->gc_lookahead_thresh,
|
||||||
lfs3_min(
|
lfs3_min(
|
||||||
@@ -10831,15 +10831,23 @@ static inline bool lfs3_alloc_canlookahead(const lfs3_t *lfs3) {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// can we repopulate the gbmap?
|
// can we repopulate the gbmap?
|
||||||
#if !defined(LFS3_RDONLY) && defined(LFS3_GBMAP)
|
#ifndef LFS3_RDONLY
|
||||||
static inline bool lfs3_alloc_canlookgbmap(const lfs3_t *lfs3) {
|
static inline bool lfs3_alloc_canlookgbmap(const lfs3_t *lfs3) {
|
||||||
|
#ifdef LFS3_GBMAP
|
||||||
|
// do we even have a gbmap?
|
||||||
return lfs3_f_isgbmap(lfs3->flags)
|
return lfs3_f_isgbmap(lfs3->flags)
|
||||||
|
// below gc_lookgbmap_thresh?
|
||||||
&& lfs3->gbmap.known
|
&& lfs3->gbmap.known
|
||||||
<= lfs3_min(
|
<= lfs3_min(
|
||||||
lfs3_max(
|
lfs3_max(
|
||||||
lfs3->cfg->gc_lookgbmap_thresh,
|
lfs3->cfg->gc_lookgbmap_thresh,
|
||||||
lfs3->cfg->lookgbmap_thresh),
|
lfs3->cfg->lookgbmap_thresh),
|
||||||
lfs3->block_count-1);
|
lfs3->block_count-1);
|
||||||
|
#else
|
||||||
|
// TODO adopt this localized void in flag functions?
|
||||||
|
(void)lfs3;
|
||||||
|
return false;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -10924,8 +10932,13 @@ static void lfs3_alloc_adopt(lfs3_t *lfs3, lfs3_block_t known) {
|
|||||||
LFS3_UNREACHABLE();
|
LFS3_UNREACHABLE();
|
||||||
}
|
}
|
||||||
|
|
||||||
// signal that lookahead is full
|
// signal that lookahead is full, unless we also want a gbmap
|
||||||
lfs3->flags &= ~LFS3_I_LOOKAHEAD;
|
if (LFS3_IFDEF_GBMAP(
|
||||||
|
!(lfs3_f_isgbmap(lfs3->flags)
|
||||||
|
&& lfs3_alloc_canlookgbmap(lfs3)),
|
||||||
|
true)) {
|
||||||
|
lfs3->flags &= ~LFS3_I_LOOKAHEAD;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -10944,7 +10957,7 @@ static int lfs3_alloc_adoptgbmap(lfs3_t *lfs3,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// signal that gbmap is full
|
// signal that gbmap is full
|
||||||
lfs3->flags &= ~LFS3_I_LOOKGBMAP;
|
lfs3->flags &= ~LFS3_I_LOOKAHEAD;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -10978,16 +10991,11 @@ static void lfs3_alloc_inc(lfs3_t *lfs3) {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// signal that lookahead is no longer full
|
// signal that lookahead/gbmap is no longer full
|
||||||
if (lfs3_alloc_canlookahead(lfs3)) {
|
if (lfs3_alloc_canlookahead(lfs3)
|
||||||
|
|| lfs3_alloc_canlookgbmap(lfs3)) {
|
||||||
lfs3->flags |= LFS3_I_LOOKAHEAD;
|
lfs3->flags |= LFS3_I_LOOKAHEAD;
|
||||||
}
|
}
|
||||||
#ifdef LFS3_GBMAP
|
|
||||||
// signal that gbmap is no longer full
|
|
||||||
if (lfs3_alloc_canlookgbmap(lfs3)) {
|
|
||||||
lfs3->flags |= LFS3_I_LOOKGBMAP;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -15641,14 +15649,15 @@ static int lfs3_mountinited(lfs3_t *lfs3) {
|
|||||||
// known gbmap window
|
// known gbmap window
|
||||||
lfs3->lookahead.window = lfs3->gbmap.window;
|
lfs3->lookahead.window = lfs3->gbmap.window;
|
||||||
|
|
||||||
// mark our gbmap as repopulatable if known window is
|
// update lookahead flag, we only signal our gbmap is
|
||||||
// <= gc_lookgbmap_thresh
|
// repopulatable if known window <= gc_lookgbmap_thresh,
|
||||||
//
|
// unfortunately the way the gbmap feeds itself this rarely
|
||||||
// unfortunately the dependency of the gbmap on block allocation
|
// includes the entire disk
|
||||||
// means this rarely includes the entire disk
|
lfs3->flags = (lfs3->flags & ~LFS3_I_LOOKAHEAD)
|
||||||
if (lfs3_alloc_canlookgbmap(lfs3)) {
|
| ((lfs3_alloc_canlookahead(lfs3)
|
||||||
lfs3->flags |= LFS3_I_LOOKGBMAP;
|
|| lfs3_alloc_canlookgbmap(lfs3))
|
||||||
}
|
? LFS3_I_LOOKAHEAD
|
||||||
|
: 0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
@@ -15700,9 +15709,6 @@ int lfs3_mount(lfs3_t *lfs3, uint32_t flags,
|
|||||||
#ifdef LFS3_YES_LOOKAHEAD
|
#ifdef LFS3_YES_LOOKAHEAD
|
||||||
flags |= LFS3_M_LOOKAHEAD;
|
flags |= LFS3_M_LOOKAHEAD;
|
||||||
#endif
|
#endif
|
||||||
#ifdef LFS3_YES_LOOKGBMAP
|
|
||||||
flags |= LFS3_M_LOOKGBMAP;
|
|
||||||
#endif
|
|
||||||
#ifdef LFS3_YES_COMPACTMETA
|
#ifdef LFS3_YES_COMPACTMETA
|
||||||
flags |= LFS3_M_COMPACTMETA;
|
flags |= LFS3_M_COMPACTMETA;
|
||||||
#endif
|
#endif
|
||||||
@@ -15727,15 +15733,12 @@ int lfs3_mount(lfs3_t *lfs3, uint32_t flags,
|
|||||||
| LFS3_IFDEF_CKDATACKSUMS(LFS3_M_CKDATACKSUMS, 0)
|
| LFS3_IFDEF_CKDATACKSUMS(LFS3_M_CKDATACKSUMS, 0)
|
||||||
| LFS3_IFDEF_RDONLY(0, LFS3_M_MKCONSISTENT)
|
| LFS3_IFDEF_RDONLY(0, LFS3_M_MKCONSISTENT)
|
||||||
| LFS3_IFDEF_RDONLY(0, LFS3_M_LOOKAHEAD)
|
| LFS3_IFDEF_RDONLY(0, LFS3_M_LOOKAHEAD)
|
||||||
| LFS3_IFDEF_RDONLY(0,
|
|
||||||
LFS3_IFDEF_GBMAP(LFS3_M_LOOKGBMAP, 0))
|
|
||||||
| LFS3_IFDEF_RDONLY(0, LFS3_M_COMPACTMETA)
|
| LFS3_IFDEF_RDONLY(0, LFS3_M_COMPACTMETA)
|
||||||
| LFS3_M_CKMETA
|
| LFS3_M_CKMETA
|
||||||
| LFS3_M_CKDATA)) == 0);
|
| LFS3_M_CKDATA)) == 0);
|
||||||
// these flags require a writable filesystem
|
// these flags require a writable filesystem
|
||||||
LFS3_ASSERT(!lfs3_m_isrdonly(flags) || !lfs3_t_ismkconsistent(flags));
|
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_islookahead(flags));
|
||||||
LFS3_ASSERT(!lfs3_m_isrdonly(flags) || !lfs3_t_islookgbmap(flags));
|
|
||||||
LFS3_ASSERT(!lfs3_m_isrdonly(flags) || !lfs3_t_compactmeta(flags));
|
LFS3_ASSERT(!lfs3_m_isrdonly(flags) || !lfs3_t_compactmeta(flags));
|
||||||
|
|
||||||
int err = lfs3_init(lfs3,
|
int err = lfs3_init(lfs3,
|
||||||
@@ -16004,9 +16007,6 @@ int lfs3_format(lfs3_t *lfs3, uint32_t flags,
|
|||||||
#ifdef LFS3_YES_LOOKAHEAD
|
#ifdef LFS3_YES_LOOKAHEAD
|
||||||
flags |= LFS3_F_LOOKAHEAD;
|
flags |= LFS3_F_LOOKAHEAD;
|
||||||
#endif
|
#endif
|
||||||
#ifdef LFS3_YES_LOOKGBMAP
|
|
||||||
flags |= LFS3_F_LOOKGBMAP;
|
|
||||||
#endif
|
|
||||||
#ifdef LFS3_YES_COMPACTMETA
|
#ifdef LFS3_YES_COMPACTMETA
|
||||||
flags |= LFS3_F_COMPACTMETA;
|
flags |= LFS3_F_COMPACTMETA;
|
||||||
#endif
|
#endif
|
||||||
@@ -16029,7 +16029,6 @@ int lfs3_format(lfs3_t *lfs3, uint32_t flags,
|
|||||||
| LFS3_IFDEF_CKDATACKSUMS(LFS3_F_CKDATACKSUMS, 0)
|
| LFS3_IFDEF_CKDATACKSUMS(LFS3_F_CKDATACKSUMS, 0)
|
||||||
| LFS3_F_MKCONSISTENT
|
| LFS3_F_MKCONSISTENT
|
||||||
| LFS3_F_LOOKAHEAD
|
| LFS3_F_LOOKAHEAD
|
||||||
| LFS3_IFDEF_GBMAP(LFS3_F_LOOKGBMAP, 0)
|
|
||||||
| LFS3_F_COMPACTMETA
|
| LFS3_F_COMPACTMETA
|
||||||
| LFS3_F_CKMETA
|
| LFS3_F_CKMETA
|
||||||
| LFS3_F_CKDATA)) == 0);
|
| LFS3_F_CKDATA)) == 0);
|
||||||
@@ -16102,7 +16101,6 @@ int lfs3_fs_stat(lfs3_t *lfs3, struct lfs3_fsinfo *fsinfo) {
|
|||||||
| LFS3_IFDEF_CKDATACKSUMS(LFS3_I_CKDATACKSUMS, 0)
|
| LFS3_IFDEF_CKDATACKSUMS(LFS3_I_CKDATACKSUMS, 0)
|
||||||
| LFS3_IFDEF_RDONLY(0, LFS3_I_MKCONSISTENT)
|
| LFS3_IFDEF_RDONLY(0, LFS3_I_MKCONSISTENT)
|
||||||
| LFS3_IFDEF_RDONLY(0, LFS3_I_LOOKAHEAD)
|
| LFS3_IFDEF_RDONLY(0, LFS3_I_LOOKAHEAD)
|
||||||
| LFS3_IFDEF_RDONLY(0, LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, 0))
|
|
||||||
| LFS3_IFDEF_RDONLY(0, LFS3_I_COMPACTMETA)
|
| LFS3_IFDEF_RDONLY(0, LFS3_I_COMPACTMETA)
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -16370,9 +16368,6 @@ static int lfs3_fs_gc_(lfs3_t *lfs3, lfs3_mgc_t *mgc,
|
|||||||
#ifndef LFS3_RDONLY
|
#ifndef LFS3_RDONLY
|
||||||
if (lfs3_t_isckpointed(mgc->t.h.flags)) {
|
if (lfs3_t_isckpointed(mgc->t.h.flags)) {
|
||||||
mgc->t.h.flags &= ~LFS3_T_LOOKAHEAD;
|
mgc->t.h.flags &= ~LFS3_T_LOOKAHEAD;
|
||||||
#ifdef LFS3_GBMAP
|
|
||||||
mgc->t.h.flags &= ~LFS3_T_LOOKGBMAP;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -16385,8 +16380,6 @@ static int lfs3_fs_gc_(lfs3_t *lfs3, lfs3_mgc_t *mgc,
|
|||||||
// do we really need a full traversal?
|
// do we really need a full traversal?
|
||||||
if (!(mgc->t.h.flags & (
|
if (!(mgc->t.h.flags & (
|
||||||
LFS3_IFDEF_RDONLY(0, LFS3_GC_LOOKAHEAD)
|
LFS3_IFDEF_RDONLY(0, LFS3_GC_LOOKAHEAD)
|
||||||
| LFS3_IFDEF_RDONLY(0,
|
|
||||||
LFS3_IFDEF_GBMAP(LFS3_GC_LOOKGBMAP, 0))
|
|
||||||
| LFS3_GC_CKMETA
|
| LFS3_GC_CKMETA
|
||||||
| LFS3_GC_CKDATA))) {
|
| LFS3_GC_CKDATA))) {
|
||||||
mgc->t.h.flags |= LFS3_T_MTREEONLY;
|
mgc->t.h.flags |= LFS3_T_MTREEONLY;
|
||||||
@@ -16428,8 +16421,6 @@ int lfs3_fs_ck(lfs3_t *lfs3, uint32_t flags) {
|
|||||||
|| !lfs3_t_ismkconsistent(flags));
|
|| !lfs3_t_ismkconsistent(flags));
|
||||||
LFS3_ASSERT(!lfs3_m_isrdonly(lfs3->flags)
|
LFS3_ASSERT(!lfs3_m_isrdonly(lfs3->flags)
|
||||||
|| !lfs3_t_islookahead(flags));
|
|| !lfs3_t_islookahead(flags));
|
||||||
LFS3_ASSERT(!lfs3_m_isrdonly(lfs3->flags)
|
|
||||||
|| !lfs3_t_islookgbmap(flags));
|
|
||||||
LFS3_ASSERT(!lfs3_m_isrdonly(lfs3->flags)
|
LFS3_ASSERT(!lfs3_m_isrdonly(lfs3->flags)
|
||||||
|| !lfs3_t_compactmeta(flags));
|
|| !lfs3_t_compactmeta(flags));
|
||||||
|
|
||||||
@@ -16454,8 +16445,6 @@ int lfs3_fs_gc(lfs3_t *lfs3) {
|
|||||||
|| !lfs3_t_ismkconsistent(lfs3->cfg->gc_flags));
|
|| !lfs3_t_ismkconsistent(lfs3->cfg->gc_flags));
|
||||||
LFS3_ASSERT(!lfs3_m_isrdonly(lfs3->flags)
|
LFS3_ASSERT(!lfs3_m_isrdonly(lfs3->flags)
|
||||||
|| !lfs3_t_islookahead(lfs3->cfg->gc_flags));
|
|| !lfs3_t_islookahead(lfs3->cfg->gc_flags));
|
||||||
LFS3_ASSERT(!lfs3_m_isrdonly(lfs3->flags)
|
|
||||||
|| !lfs3_t_islookgbmap(lfs3->cfg->gc_flags));
|
|
||||||
LFS3_ASSERT(!lfs3_m_isrdonly(lfs3->flags)
|
LFS3_ASSERT(!lfs3_m_isrdonly(lfs3->flags)
|
||||||
|| !lfs3_t_compactmeta(lfs3->cfg->gc_flags));
|
|| !lfs3_t_compactmeta(lfs3->cfg->gc_flags));
|
||||||
|
|
||||||
@@ -16707,8 +16696,6 @@ int lfs3_trv_open(lfs3_t *lfs3, lfs3_trv_t *trv, uint32_t flags) {
|
|||||||
| LFS3_T_EXCL
|
| LFS3_T_EXCL
|
||||||
| LFS3_IFDEF_RDONLY(0, LFS3_T_MKCONSISTENT)
|
| LFS3_IFDEF_RDONLY(0, LFS3_T_MKCONSISTENT)
|
||||||
| LFS3_IFDEF_RDONLY(0, LFS3_T_LOOKAHEAD)
|
| LFS3_IFDEF_RDONLY(0, LFS3_T_LOOKAHEAD)
|
||||||
| LFS3_IFDEF_RDONLY(0,
|
|
||||||
LFS3_IFDEF_GBMAP(LFS3_T_LOOKGBMAP, 0))
|
|
||||||
| LFS3_IFDEF_RDONLY(0, LFS3_T_COMPACTMETA)
|
| LFS3_IFDEF_RDONLY(0, LFS3_T_COMPACTMETA)
|
||||||
| LFS3_T_CKMETA
|
| LFS3_T_CKMETA
|
||||||
| LFS3_T_CKDATA)) == 0);
|
| LFS3_T_CKDATA)) == 0);
|
||||||
@@ -16717,11 +16704,9 @@ int lfs3_trv_open(lfs3_t *lfs3, lfs3_trv_t *trv, uint32_t flags) {
|
|||||||
// these flags require a writable traversal
|
// these flags require a writable traversal
|
||||||
LFS3_ASSERT(!lfs3_t_isrdonly(flags) || !lfs3_t_ismkconsistent(flags));
|
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_islookahead(flags));
|
||||||
LFS3_ASSERT(!lfs3_t_isrdonly(flags) || !lfs3_t_islookgbmap(flags));
|
|
||||||
LFS3_ASSERT(!lfs3_t_isrdonly(flags) || !lfs3_t_compactmeta(flags));
|
LFS3_ASSERT(!lfs3_t_isrdonly(flags) || !lfs3_t_compactmeta(flags));
|
||||||
// some flags don't make sense when only traversing the mtree
|
// 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_islookahead(flags));
|
||||||
LFS3_ASSERT(!lfs3_t_ismtreeonly(flags) || !lfs3_t_islookgbmap(flags));
|
|
||||||
LFS3_ASSERT(!lfs3_t_ismtreeonly(flags) || !lfs3_t_isckdata(flags));
|
LFS3_ASSERT(!lfs3_t_ismtreeonly(flags) || !lfs3_t_isckdata(flags));
|
||||||
|
|
||||||
// setup traversal state
|
// setup traversal state
|
||||||
|
|||||||
@@ -206,11 +206,7 @@ enum lfs3_type {
|
|||||||
#endif
|
#endif
|
||||||
#ifndef LFS3_RDONLY
|
#ifndef LFS3_RDONLY
|
||||||
#define LFS3_F_LOOKAHEAD \
|
#define LFS3_F_LOOKAHEAD \
|
||||||
0x00001000 // Repopulate lookahead buffer
|
0x00001000 // Repopulate lookahead/gbmap
|
||||||
#endif
|
|
||||||
#if !defined(LFS3_RDONLY) && defined(LFS3_GBMAP)
|
|
||||||
#define LFS3_F_LOOKGBMAP \
|
|
||||||
0x00002000 // Repopulate the gbmap
|
|
||||||
#endif
|
#endif
|
||||||
#ifndef LFS3_RDONLY
|
#ifndef LFS3_RDONLY
|
||||||
#define LFS3_F_COMPACTMETA \
|
#define LFS3_F_COMPACTMETA \
|
||||||
@@ -258,11 +254,7 @@ enum lfs3_type {
|
|||||||
#endif
|
#endif
|
||||||
#ifndef LFS3_RDONLY
|
#ifndef LFS3_RDONLY
|
||||||
#define LFS3_M_LOOKAHEAD \
|
#define LFS3_M_LOOKAHEAD \
|
||||||
0x00001000 // Repopulate lookahead buffer
|
0x00001000 // Repopulate lookahead/gbmap
|
||||||
#endif
|
|
||||||
#if !defined(LFS3_RDONLY) && defined(LFS3_GBMAP)
|
|
||||||
#define LFS3_M_LOOKGBMAP \
|
|
||||||
0x00002000 // Repopulate the gbmap
|
|
||||||
#endif
|
#endif
|
||||||
#ifndef LFS3_RDONLY
|
#ifndef LFS3_RDONLY
|
||||||
#define LFS3_M_COMPACTMETA \
|
#define LFS3_M_COMPACTMETA \
|
||||||
@@ -305,11 +297,7 @@ enum lfs3_type {
|
|||||||
#endif
|
#endif
|
||||||
#ifndef LFS3_RDONLY
|
#ifndef LFS3_RDONLY
|
||||||
#define LFS3_I_LOOKAHEAD \
|
#define LFS3_I_LOOKAHEAD \
|
||||||
0x00001000 // Lookahead buffer is not full
|
0x00001000 // Lookahead/gbmap is not full
|
||||||
#endif
|
|
||||||
#if !defined(LFS3_RDONLY) && defined(LFS3_GBMAP)
|
|
||||||
#define LFS3_I_LOOKGBMAP \
|
|
||||||
0x00002000 // The gbmap is not full
|
|
||||||
#endif
|
#endif
|
||||||
#ifndef LFS3_RDONLY
|
#ifndef LFS3_RDONLY
|
||||||
#define LFS3_I_COMPACTMETA \
|
#define LFS3_I_COMPACTMETA \
|
||||||
@@ -340,11 +328,7 @@ enum lfs3_btype {
|
|||||||
#endif
|
#endif
|
||||||
#ifndef LFS3_RDONLY
|
#ifndef LFS3_RDONLY
|
||||||
#define LFS3_T_LOOKAHEAD \
|
#define LFS3_T_LOOKAHEAD \
|
||||||
0x00001000 // Repopulate lookahead buffer
|
0x00001000 // Repopulate lookahead/gbmap
|
||||||
#endif
|
|
||||||
#if !defined(LFS3_RDONLY) && defined(LFS3_GBMAP)
|
|
||||||
#define LFS3_T_LOOKGBMAP \
|
|
||||||
0x00002000 // Repopulate the gbmap
|
|
||||||
#endif
|
#endif
|
||||||
#ifndef LFS3_RDONLY
|
#ifndef LFS3_RDONLY
|
||||||
#define LFS3_T_COMPACTMETA \
|
#define LFS3_T_COMPACTMETA \
|
||||||
@@ -369,11 +353,7 @@ enum lfs3_btype {
|
|||||||
#endif
|
#endif
|
||||||
#ifndef LFS3_RDONLY
|
#ifndef LFS3_RDONLY
|
||||||
#define LFS3_CK_LOOKAHEAD \
|
#define LFS3_CK_LOOKAHEAD \
|
||||||
0x00001000 // Repopulate lookahead buffer
|
0x00001000 // Repopulate lookahead/gbmap
|
||||||
#endif
|
|
||||||
#if !defined(LFS3_RDONLY) && defined(LFS3_GBMAP)
|
|
||||||
#define LFS3_CK_LOOKGBMAP \
|
|
||||||
0x00002000 // Repopulate the gbmap
|
|
||||||
#endif
|
#endif
|
||||||
#ifndef LFS3_RDONLY
|
#ifndef LFS3_RDONLY
|
||||||
#define LFS3_CK_COMPACTMETA \
|
#define LFS3_CK_COMPACTMETA \
|
||||||
@@ -389,11 +369,7 @@ enum lfs3_btype {
|
|||||||
#endif
|
#endif
|
||||||
#ifndef LFS3_RDONLY
|
#ifndef LFS3_RDONLY
|
||||||
#define LFS3_GC_LOOKAHEAD \
|
#define LFS3_GC_LOOKAHEAD \
|
||||||
0x00001000 // Repopulate lookahead buffer
|
0x00001000 // Repopulate lookahead/gbmap
|
||||||
#endif
|
|
||||||
#if !defined(LFS3_RDONLY) && defined(LFS3_GBMAP)
|
|
||||||
#define LFS3_GC_LOOKGBMAP \
|
|
||||||
0x00002000 // Repopulate the gbmap
|
|
||||||
#endif
|
#endif
|
||||||
#ifndef LFS3_RDONLY
|
#ifndef LFS3_RDONLY
|
||||||
#define LFS3_GC_COMPACTMETA \
|
#define LFS3_GC_COMPACTMETA \
|
||||||
@@ -406,8 +382,6 @@ enum lfs3_btype {
|
|||||||
#define LFS3_GC_ALL ( \
|
#define LFS3_GC_ALL ( \
|
||||||
LFS3_IFDEF_RDONLY(0, LFS3_GC_MKCONSISTENT) \
|
LFS3_IFDEF_RDONLY(0, LFS3_GC_MKCONSISTENT) \
|
||||||
| LFS3_IFDEF_RDONLY(0, LFS3_GC_LOOKAHEAD) \
|
| LFS3_IFDEF_RDONLY(0, LFS3_GC_LOOKAHEAD) \
|
||||||
| LFS3_IFDEF_RDONLY(0, \
|
|
||||||
LFS3_IFDEF_GBMAP(LFS3_GC_LOOKGBMAP, 0)) \
|
|
||||||
| LFS3_IFDEF_RDONLY(0, LFS3_GC_COMPACTMETA) \
|
| LFS3_IFDEF_RDONLY(0, LFS3_GC_COMPACTMETA) \
|
||||||
| LFS3_GC_CKMETA \
|
| LFS3_GC_CKMETA \
|
||||||
| LFS3_GC_CKDATA)
|
| LFS3_GC_CKDATA)
|
||||||
|
|||||||
@@ -83,7 +83,6 @@ F_CKDATACKSUMS = 0x01000000 # y- Check data checksums on reads
|
|||||||
|
|
||||||
F_MKCONSISTENT = 0x00000800 # y- Make the filesystem consistent
|
F_MKCONSISTENT = 0x00000800 # y- Make the filesystem consistent
|
||||||
F_LOOKAHEAD = 0x00001000 # y- Repopulate lookahead buffer
|
F_LOOKAHEAD = 0x00001000 # y- Repopulate lookahead buffer
|
||||||
F_LOOKGBMAP = 0x00002000 # y- Repopulate the gbmap
|
|
||||||
F_COMPACTMETA = 0x00008000 # y- Compact metadata logs
|
F_COMPACTMETA = 0x00008000 # y- Compact metadata logs
|
||||||
F_CKMETA = 0x00010000 # y- Check metadata checksums
|
F_CKMETA = 0x00010000 # y- Check metadata checksums
|
||||||
F_CKDATA = 0x00020000 # y- Check metadata + data checksums
|
F_CKDATA = 0x00020000 # y- Check metadata + data checksums
|
||||||
@@ -103,7 +102,6 @@ M_CKDATACKSUMS = 0x01000000 # y- Check data checksums on reads
|
|||||||
|
|
||||||
M_MKCONSISTENT = 0x00000800 # y- Make the filesystem consistent
|
M_MKCONSISTENT = 0x00000800 # y- Make the filesystem consistent
|
||||||
M_LOOKAHEAD = 0x00001000 # y- Repopulate lookahead buffer
|
M_LOOKAHEAD = 0x00001000 # y- Repopulate lookahead buffer
|
||||||
M_LOOKGBMAP = 0x00002000 # y- Repopulate the gbmap
|
|
||||||
M_COMPACTMETA = 0x00008000 # y- Compact metadata logs
|
M_COMPACTMETA = 0x00008000 # y- Compact metadata logs
|
||||||
M_CKMETA = 0x00010000 # y- Check metadata checksums
|
M_CKMETA = 0x00010000 # y- Check metadata checksums
|
||||||
M_CKDATA = 0x00020000 # y- Check metadata + data checksums
|
M_CKDATA = 0x00020000 # y- Check metadata + data checksums
|
||||||
@@ -111,7 +109,6 @@ M_CKDATA = 0x00020000 # y- Check metadata + data checksums
|
|||||||
# File/filesystem check flags
|
# File/filesystem check flags
|
||||||
CK_MKCONSISTENT = 0x00000800 # -- Make the filesystem consistent
|
CK_MKCONSISTENT = 0x00000800 # -- Make the filesystem consistent
|
||||||
CK_LOOKAHEAD = 0x00001000 # -- Repopulate lookahead buffer
|
CK_LOOKAHEAD = 0x00001000 # -- Repopulate lookahead buffer
|
||||||
CK_LOOKGBMAP = 0x00002000 # -- Repopulate the gbmap
|
|
||||||
CK_COMPACTMETA = 0x00008000 # -- Compact metadata logs
|
CK_COMPACTMETA = 0x00008000 # -- Compact metadata logs
|
||||||
CK_CKMETA = 0x00010000 # -- Check metadata checksums
|
CK_CKMETA = 0x00010000 # -- Check metadata checksums
|
||||||
CK_CKDATA = 0x00020000 # -- Check metadata + data checksums
|
CK_CKDATA = 0x00020000 # -- Check metadata + data checksums
|
||||||
@@ -119,7 +116,6 @@ CK_CKDATA = 0x00020000 # -- Check metadata + data checksums
|
|||||||
# GC flags
|
# GC flags
|
||||||
GC_MKCONSISTENT = 0x00000800 # -- Make the filesystem consistent
|
GC_MKCONSISTENT = 0x00000800 # -- Make the filesystem consistent
|
||||||
GC_LOOKAHEAD = 0x00001000 # -- Repopulate lookahead buffer
|
GC_LOOKAHEAD = 0x00001000 # -- Repopulate lookahead buffer
|
||||||
GC_LOOKGBMAP = 0x00002000 # -- Repopulate the gbmap
|
|
||||||
GC_COMPACTMETA = 0x00008000 # -- Compact metadata logs
|
GC_COMPACTMETA = 0x00008000 # -- Compact metadata logs
|
||||||
GC_CKMETA = 0x00010000 # -- Check metadata checksums
|
GC_CKMETA = 0x00010000 # -- Check metadata checksums
|
||||||
GC_CKDATA = 0x00020000 # -- Check metadata + data checksums
|
GC_CKDATA = 0x00020000 # -- Check metadata + data checksums
|
||||||
@@ -139,7 +135,6 @@ I_CKDATACKSUMS = 0x01000000 # -- Mounted with LFS3_M_CKDATACKSUMS
|
|||||||
|
|
||||||
I_MKCONSISTENT = 0x00000800 # -- Filesystem needs mkconsistent to write
|
I_MKCONSISTENT = 0x00000800 # -- Filesystem needs mkconsistent to write
|
||||||
I_LOOKAHEAD = 0x00001000 # -- Lookahead buffer is not full
|
I_LOOKAHEAD = 0x00001000 # -- Lookahead buffer is not full
|
||||||
I_LOOKGBMAP = 0x00002000 # -- The gbmap is not full
|
|
||||||
I_COMPACTMETA = 0x00008000 # -- Filesystem may have uncompacted metadata
|
I_COMPACTMETA = 0x00008000 # -- Filesystem may have uncompacted metadata
|
||||||
I_CKMETA = 0x00010000 # -- Metadata checksums not checked recently
|
I_CKMETA = 0x00010000 # -- Metadata checksums not checked recently
|
||||||
I_CKDATA = 0x00020000 # -- Data checksums not checked recently
|
I_CKDATA = 0x00020000 # -- Data checksums not checked recently
|
||||||
@@ -152,7 +147,6 @@ T_MTREEONLY = 0x00000002 # -- Only traverse the mtree
|
|||||||
T_EXCL = 0x00000008 # -- Error if filesystem modified
|
T_EXCL = 0x00000008 # -- Error if filesystem modified
|
||||||
T_MKCONSISTENT = 0x00000800 # -- Make the filesystem consistent
|
T_MKCONSISTENT = 0x00000800 # -- Make the filesystem consistent
|
||||||
T_LOOKAHEAD = 0x00001000 # -- Repopulate lookahead buffer
|
T_LOOKAHEAD = 0x00001000 # -- Repopulate lookahead buffer
|
||||||
T_LOOKGBMAP = 0x00002000 # -- Repopulate the gbmap
|
|
||||||
T_COMPACTMETA = 0x00008000 # -- Compact metadata logs
|
T_COMPACTMETA = 0x00008000 # -- Compact metadata logs
|
||||||
T_CKMETA = 0x00010000 # -- Check metadata checksums
|
T_CKMETA = 0x00010000 # -- Check metadata checksums
|
||||||
T_CKDATA = 0x00020000 # -- Check metadata + data checksums
|
T_CKDATA = 0x00020000 # -- Check metadata + data checksums
|
||||||
|
|||||||
+50
-184
@@ -14,7 +14,7 @@ if = '''
|
|||||||
|
|
||||||
|
|
||||||
# test that lookahead can make progress in isolation
|
# test that lookahead can make progress in isolation
|
||||||
[cases.test_gc_relookahead_progress]
|
[cases.test_gc_lookahead_progress]
|
||||||
defines.CKMETA = [false, true]
|
defines.CKMETA = [false, true]
|
||||||
defines.CKDATA = [false, true]
|
defines.CKDATA = [false, true]
|
||||||
defines.GC_FLAGS = '''
|
defines.GC_FLAGS = '''
|
||||||
@@ -31,6 +31,7 @@ defines.SIZE = [
|
|||||||
'2*BLOCK_SIZE',
|
'2*BLOCK_SIZE',
|
||||||
'8*BLOCK_SIZE',
|
'8*BLOCK_SIZE',
|
||||||
]
|
]
|
||||||
|
if = '!GBMAP'
|
||||||
ifdef = 'LFS3_GC'
|
ifdef = 'LFS3_GC'
|
||||||
code = '''
|
code = '''
|
||||||
lfs3_t lfs3;
|
lfs3_t lfs3;
|
||||||
@@ -83,7 +84,7 @@ code = '''
|
|||||||
'''
|
'''
|
||||||
|
|
||||||
# test that lookahead dirtying still works with the GC API
|
# 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.CKMETA = [false, true]
|
||||||
defines.CKDATA = [false, true]
|
defines.CKDATA = [false, true]
|
||||||
defines.GC_FLAGS = '''
|
defines.GC_FLAGS = '''
|
||||||
@@ -99,8 +100,11 @@ defines.SIZE = [
|
|||||||
'2*BLOCK_SIZE',
|
'2*BLOCK_SIZE',
|
||||||
'8*BLOCK_SIZE',
|
'8*BLOCK_SIZE',
|
||||||
]
|
]
|
||||||
# we need something to keep the traversal running
|
if = [
|
||||||
if = 'CKMETA || CKDATA'
|
'!GBMAP',
|
||||||
|
# we need something to keep the traversal running
|
||||||
|
'CKMETA || CKDATA',
|
||||||
|
]
|
||||||
ifdef = 'LFS3_GC'
|
ifdef = 'LFS3_GC'
|
||||||
code = '''
|
code = '''
|
||||||
lfs3_t lfs3;
|
lfs3_t lfs3;
|
||||||
@@ -161,10 +165,10 @@ code = '''
|
|||||||
lfs3_unmount(&lfs3) => 0;
|
lfs3_unmount(&lfs3) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
# test that we can relax lookahead repopulation with
|
# test that we can relax lookahead scanning with
|
||||||
# gc_relookahead_thresh
|
# gc_lookahead_thresh
|
||||||
[cases.test_gc_relookahead_relaxed]
|
[cases.test_gc_lookahead_relaxed]
|
||||||
# relax our repop thresh
|
# relax our lookahead thresh
|
||||||
defines.GC_LOOKAHEAD_THRESH = [
|
defines.GC_LOOKAHEAD_THRESH = [
|
||||||
'-1',
|
'-1',
|
||||||
'8*LOOKAHEAD_SIZE - (8*LOOKAHEAD_SIZE/4)',
|
'8*LOOKAHEAD_SIZE - (8*LOOKAHEAD_SIZE/4)',
|
||||||
@@ -179,6 +183,7 @@ defines.GC_FLAGS = '''
|
|||||||
'''
|
'''
|
||||||
defines.GC_STEPS = [-1, 1, 2, 10, 100, 1000]
|
defines.GC_STEPS = [-1, 1, 2, 10, 100, 1000]
|
||||||
defines.SIZE = 'BLOCK_SIZE'
|
defines.SIZE = 'BLOCK_SIZE'
|
||||||
|
if = '!GBMAP'
|
||||||
ifdef = 'LFS3_GC'
|
ifdef = 'LFS3_GC'
|
||||||
code = '''
|
code = '''
|
||||||
lfs3_t lfs3;
|
lfs3_t lfs3;
|
||||||
@@ -273,14 +278,12 @@ code = '''
|
|||||||
'''
|
'''
|
||||||
|
|
||||||
|
|
||||||
# test that regbmap can make progress in isolation
|
# test that lookgbmap can make progress in isolation
|
||||||
[cases.test_gc_regbmap_progress]
|
[cases.test_gc_lookgbmap_progress]
|
||||||
defines.LOOKAHEAD = [false, true]
|
|
||||||
defines.CKMETA = [false, true]
|
defines.CKMETA = [false, true]
|
||||||
defines.CKDATA = [false, true]
|
defines.CKDATA = [false, true]
|
||||||
defines.GC_FLAGS = '''
|
defines.GC_FLAGS = '''
|
||||||
LFS3_GC_LOOKGBMAP
|
LFS3_GC_LOOKAHEAD
|
||||||
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
|
|
||||||
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
|
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
|
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
|
||||||
'''
|
'''
|
||||||
@@ -317,7 +320,7 @@ code = '''
|
|||||||
// expect dirty initial state or else our test doesn't work
|
// expect dirty initial state or else our test doesn't work
|
||||||
struct lfs3_fsinfo fsinfo;
|
struct lfs3_fsinfo fsinfo;
|
||||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
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);
|
assert(lfs3.handles != &lfs3.gc.t.h);
|
||||||
|
|
||||||
// run GC until we make progress
|
// run GC until we make progress
|
||||||
@@ -328,7 +331,7 @@ code = '''
|
|||||||
lfs3_fs_gc(&lfs3) => 0;
|
lfs3_fs_gc(&lfs3) => 0;
|
||||||
|
|
||||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||||
if (!(fsinfo.flags & LFS3_I_LOOKGBMAP)) {
|
if (!(fsinfo.flags & LFS3_I_LOOKAHEAD)) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -343,14 +346,12 @@ code = '''
|
|||||||
lfs3_unmount(&lfs3) => 0;
|
lfs3_unmount(&lfs3) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
# test that regbmap dirtying still works with the GC API
|
# test that lookgbmap dirtying still works with the GC API
|
||||||
[cases.test_gc_regbmap_mutation]
|
[cases.test_gc_lookgbmap_mutation]
|
||||||
defines.LOOKAHEAD = [false, true]
|
|
||||||
defines.CKMETA = [false, true]
|
defines.CKMETA = [false, true]
|
||||||
defines.CKDATA = [false, true]
|
defines.CKDATA = [false, true]
|
||||||
defines.GC_FLAGS = '''
|
defines.GC_FLAGS = '''
|
||||||
LFS3_GC_LOOKGBMAP
|
LFS3_GC_LOOKAHEAD
|
||||||
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
|
|
||||||
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
|
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
|
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
|
||||||
'''
|
'''
|
||||||
@@ -390,7 +391,7 @@ code = '''
|
|||||||
// expect dirty initial state or else our test doesn't work
|
// expect dirty initial state or else our test doesn't work
|
||||||
struct lfs3_fsinfo fsinfo;
|
struct lfs3_fsinfo fsinfo;
|
||||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
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);
|
assert(lfs3.handles != &lfs3.gc.t.h);
|
||||||
|
|
||||||
// run GC one step
|
// run GC one step
|
||||||
@@ -413,7 +414,7 @@ code = '''
|
|||||||
|
|
||||||
// we should _not_ make progress
|
// we should _not_ make progress
|
||||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||||
assert(fsinfo.flags & LFS3_I_LOOKGBMAP);
|
assert(fsinfo.flags & LFS3_I_LOOKAHEAD);
|
||||||
|
|
||||||
// check the file contents
|
// check the file contents
|
||||||
lfs3_file_open(&lfs3, &file, "spider", LFS3_O_RDONLY) => 0;
|
lfs3_file_open(&lfs3, &file, "spider", LFS3_O_RDONLY) => 0;
|
||||||
@@ -425,20 +426,18 @@ code = '''
|
|||||||
lfs3_unmount(&lfs3) => 0;
|
lfs3_unmount(&lfs3) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
# test that we can relax gbmap repopulation with gc_regbmap_thresh
|
# test that we can relax gbmap repopulation with gc_lookgbmap_thresh
|
||||||
[cases.test_gc_regbmap_relaxed]
|
[cases.test_gc_lookgbmap_relaxed]
|
||||||
# relax our repop thresh
|
# relax our lookgbmap thresh
|
||||||
defines.GC_LOOKGBMAP_THRESH = [
|
defines.GC_LOOKGBMAP_THRESH = [
|
||||||
'-1',
|
'-1',
|
||||||
'BLOCK_COUNT - (BLOCK_COUNT/4)',
|
'BLOCK_COUNT - (BLOCK_COUNT/4)',
|
||||||
'BLOCK_COUNT - (BLOCK_COUNT/2)',
|
'BLOCK_COUNT - (BLOCK_COUNT/2)',
|
||||||
]
|
]
|
||||||
defines.LOOKAHEAD = [false, true]
|
|
||||||
defines.CKMETA = [false, true]
|
defines.CKMETA = [false, true]
|
||||||
defines.CKDATA = [false, true]
|
defines.CKDATA = [false, true]
|
||||||
defines.GC_FLAGS = '''
|
defines.GC_FLAGS = '''
|
||||||
LFS3_GC_LOOKGBMAP
|
LFS3_GC_LOOKAHEAD
|
||||||
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
|
|
||||||
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
|
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
|
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
|
||||||
'''
|
'''
|
||||||
@@ -476,7 +475,7 @@ code = '''
|
|||||||
|
|
||||||
struct lfs3_fsinfo fsinfo;
|
struct lfs3_fsinfo fsinfo;
|
||||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||||
if (!(fsinfo.flags & LFS3_I_LOOKGBMAP)) {
|
if (!(fsinfo.flags & LFS3_I_LOOKAHEAD)) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -503,7 +502,7 @@ code = '''
|
|||||||
|
|
||||||
struct lfs3_fsinfo fsinfo;
|
struct lfs3_fsinfo fsinfo;
|
||||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||||
if (fsinfo.flags & LFS3_I_LOOKGBMAP) {
|
if (fsinfo.flags & LFS3_I_LOOKAHEAD) {
|
||||||
// check that we actually relaxed repopulations
|
// check that we actually relaxed repopulations
|
||||||
if ((lfs3_size_t)GC_LOOKGBMAP_THRESH
|
if ((lfs3_size_t)GC_LOOKGBMAP_THRESH
|
||||||
< BLOCK_COUNT-1) {
|
< BLOCK_COUNT-1) {
|
||||||
@@ -524,7 +523,7 @@ code = '''
|
|||||||
|
|
||||||
struct lfs3_fsinfo fsinfo;
|
struct lfs3_fsinfo fsinfo;
|
||||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||||
if (!(fsinfo.flags & LFS3_I_LOOKGBMAP)) {
|
if (!(fsinfo.flags & LFS3_I_LOOKAHEAD)) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1823,14 +1822,12 @@ done:;
|
|||||||
defines.AFTER = [0, 1, 2, 3]
|
defines.AFTER = [0, 1, 2, 3]
|
||||||
defines.MKCONSISTENT = [false, true]
|
defines.MKCONSISTENT = [false, true]
|
||||||
defines.LOOKAHEAD = [false, true]
|
defines.LOOKAHEAD = [false, true]
|
||||||
defines.LOOKGBMAP = [false, true]
|
|
||||||
defines.COMPACTMETA = [false, true]
|
defines.COMPACTMETA = [false, true]
|
||||||
defines.CKMETA = [false, true]
|
defines.CKMETA = [false, true]
|
||||||
defines.CKDATA = [false, true]
|
defines.CKDATA = [false, true]
|
||||||
defines.GC_FLAGS = '''
|
defines.GC_FLAGS = '''
|
||||||
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
|
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
|
||||||
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
|
||||||
| ((LOOKGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_LOOKGBMAP, -1) : 0)
|
|
||||||
| ((COMPACTMETA) ? LFS3_GC_COMPACTMETA : 0)
|
| ((COMPACTMETA) ? LFS3_GC_COMPACTMETA : 0)
|
||||||
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
|
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
|
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
|
||||||
@@ -1849,7 +1846,6 @@ defines.SIZE = [
|
|||||||
if = [
|
if = [
|
||||||
'(SIZE*N)/BLOCK_SIZE <= 32',
|
'(SIZE*N)/BLOCK_SIZE <= 32',
|
||||||
'LFS3_IFDEF_GC(true, AFTER != 0)',
|
'LFS3_IFDEF_GC(true, AFTER != 0)',
|
||||||
'GBMAP || !LOOKGBMAP',
|
|
||||||
]
|
]
|
||||||
code = '''
|
code = '''
|
||||||
lfs3_t lfs3;
|
lfs3_t lfs3;
|
||||||
@@ -1888,10 +1884,8 @@ code = '''
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_MKCONSISTENT
|
| LFS3_I_MKCONSISTENT
|
||||||
| LFS3_I_LOOKAHEAD
|
| ((!GBMAP || (fsinfo.flags & LFS3_I_LOOKAHEAD))
|
||||||
| ((GBMAP)
|
? LFS3_I_LOOKAHEAD
|
||||||
? (LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1)
|
|
||||||
& fsinfo.flags)
|
|
||||||
: 0)
|
: 0)
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
@@ -1914,9 +1908,6 @@ code = '''
|
|||||||
if (!(fsinfo.flags & (
|
if (!(fsinfo.flags & (
|
||||||
((MKCONSISTENT) ? LFS3_I_MKCONSISTENT : 0)
|
((MKCONSISTENT) ? LFS3_I_MKCONSISTENT : 0)
|
||||||
| ((LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
||||||
| ((LOOKGBMAP)
|
|
||||||
? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1)
|
|
||||||
: 0)
|
|
||||||
| ((COMPACTMETA) ? LFS3_I_COMPACTMETA : 0)
|
| ((COMPACTMETA) ? LFS3_I_COMPACTMETA : 0)
|
||||||
| ((CKMETA) ? LFS3_I_CKMETA : 0)
|
| ((CKMETA) ? LFS3_I_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS3_I_CKDATA : 0)))) {
|
| ((CKDATA) ? LFS3_I_CKDATA : 0)))) {
|
||||||
@@ -1946,9 +1937,6 @@ code = '''
|
|||||||
if (!(fsinfo.flags & (
|
if (!(fsinfo.flags & (
|
||||||
((MKCONSISTENT) ? LFS3_I_MKCONSISTENT : 0)
|
((MKCONSISTENT) ? LFS3_I_MKCONSISTENT : 0)
|
||||||
| ((LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
||||||
| ((LOOKGBMAP)
|
|
||||||
? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1)
|
|
||||||
: 0)
|
|
||||||
| ((COMPACTMETA) ? LFS3_I_COMPACTMETA : 0)
|
| ((COMPACTMETA) ? LFS3_I_COMPACTMETA : 0)
|
||||||
| ((CKMETA) ? LFS3_I_CKMETA : 0)
|
| ((CKMETA) ? LFS3_I_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS3_I_CKDATA : 0)))) {
|
| ((CKDATA) ? LFS3_I_CKDATA : 0)))) {
|
||||||
@@ -1975,24 +1963,6 @@ code = '''
|
|||||||
lfs3_trv_close(&lfs3, &trv) => 0;
|
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)) {
|
if (COMPACTMETA && (fsinfo.flags & LFS3_I_COMPACTMETA)) {
|
||||||
// we need an explicit traversal for this
|
// we need an explicit traversal for this
|
||||||
lfs3_trv_t trv;
|
lfs3_trv_t trv;
|
||||||
@@ -2033,12 +2003,9 @@ code = '''
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| ((!MKCONSISTENT) ? LFS3_I_MKCONSISTENT : 0)
|
| ((!MKCONSISTENT) ? LFS3_I_MKCONSISTENT : 0)
|
||||||
| ((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
| ((!LOOKAHEAD
|
||||||
| ((!LOOKGBMAP)
|
&& (!GBMAP || (fsinfo.flags & LFS3_I_LOOKAHEAD)))
|
||||||
? ((GBMAP)
|
? LFS3_I_LOOKAHEAD
|
||||||
? (LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1)
|
|
||||||
& fsinfo.flags)
|
|
||||||
: 0)
|
|
||||||
: 0)
|
: 0)
|
||||||
| ((!COMPACTMETA) ? LFS3_I_COMPACTMETA : 0)
|
| ((!COMPACTMETA) ? LFS3_I_COMPACTMETA : 0)
|
||||||
// note ckdata implies ckmeta
|
// note ckdata implies ckmeta
|
||||||
@@ -2058,14 +2025,12 @@ code = '''
|
|||||||
defines.AFTER = [0, 1, 2, 3]
|
defines.AFTER = [0, 1, 2, 3]
|
||||||
defines.MKCONSISTENT = [false, true]
|
defines.MKCONSISTENT = [false, true]
|
||||||
defines.LOOKAHEAD = [false, true]
|
defines.LOOKAHEAD = [false, true]
|
||||||
defines.LOOKGBMAP = [false, true]
|
|
||||||
defines.COMPACTMETA = [false, true]
|
defines.COMPACTMETA = [false, true]
|
||||||
defines.CKMETA = [false, true]
|
defines.CKMETA = [false, true]
|
||||||
defines.CKDATA = [false, true]
|
defines.CKDATA = [false, true]
|
||||||
defines.GC_FLAGS = '''
|
defines.GC_FLAGS = '''
|
||||||
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
|
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
|
||||||
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
|
||||||
| ((LOOKGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_LOOKGBMAP, -1) : 0)
|
|
||||||
| ((COMPACTMETA) ? LFS3_GC_COMPACTMETA : 0)
|
| ((COMPACTMETA) ? LFS3_GC_COMPACTMETA : 0)
|
||||||
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
|
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
|
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
|
||||||
@@ -2084,7 +2049,6 @@ defines.SIZE = [
|
|||||||
if = [
|
if = [
|
||||||
'(SIZE*N)/BLOCK_SIZE <= 32',
|
'(SIZE*N)/BLOCK_SIZE <= 32',
|
||||||
'LFS3_IFDEF_GC(true, AFTER != 0)',
|
'LFS3_IFDEF_GC(true, AFTER != 0)',
|
||||||
'GBMAP || !LOOKGBMAP',
|
|
||||||
]
|
]
|
||||||
code = '''
|
code = '''
|
||||||
lfs3_t lfs3;
|
lfs3_t lfs3;
|
||||||
@@ -2123,10 +2087,8 @@ code = '''
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_MKCONSISTENT
|
| LFS3_I_MKCONSISTENT
|
||||||
| LFS3_I_LOOKAHEAD
|
| ((!GBMAP || (fsinfo.flags & LFS3_I_LOOKAHEAD))
|
||||||
| ((GBMAP)
|
? LFS3_I_LOOKAHEAD
|
||||||
? (LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1)
|
|
||||||
& fsinfo.flags)
|
|
||||||
: 0)
|
: 0)
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
@@ -2149,9 +2111,6 @@ code = '''
|
|||||||
if (!(fsinfo.flags & (
|
if (!(fsinfo.flags & (
|
||||||
((MKCONSISTENT) ? LFS3_I_MKCONSISTENT : 0)
|
((MKCONSISTENT) ? LFS3_I_MKCONSISTENT : 0)
|
||||||
| ((LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
||||||
| ((LOOKGBMAP)
|
|
||||||
? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1)
|
|
||||||
: 0)
|
|
||||||
| ((COMPACTMETA) ? LFS3_I_COMPACTMETA : 0)
|
| ((COMPACTMETA) ? LFS3_I_COMPACTMETA : 0)
|
||||||
| ((CKMETA) ? LFS3_I_CKMETA : 0)
|
| ((CKMETA) ? LFS3_I_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS3_I_CKDATA : 0)))) {
|
| ((CKDATA) ? LFS3_I_CKDATA : 0)))) {
|
||||||
@@ -2181,9 +2140,6 @@ code = '''
|
|||||||
if (!(fsinfo.flags & (
|
if (!(fsinfo.flags & (
|
||||||
((MKCONSISTENT) ? LFS3_I_MKCONSISTENT : 0)
|
((MKCONSISTENT) ? LFS3_I_MKCONSISTENT : 0)
|
||||||
| ((LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
||||||
| ((LOOKGBMAP)
|
|
||||||
? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1)
|
|
||||||
: 0)
|
|
||||||
| ((COMPACTMETA) ? LFS3_I_COMPACTMETA : 0)
|
| ((COMPACTMETA) ? LFS3_I_COMPACTMETA : 0)
|
||||||
| ((CKMETA) ? LFS3_I_CKMETA : 0)
|
| ((CKMETA) ? LFS3_I_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS3_I_CKDATA : 0)))) {
|
| ((CKDATA) ? LFS3_I_CKDATA : 0)))) {
|
||||||
@@ -2210,24 +2166,6 @@ code = '''
|
|||||||
lfs3_trv_close(&lfs3, &trv) => 0;
|
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)) {
|
if (COMPACTMETA && (fsinfo.flags & LFS3_I_COMPACTMETA)) {
|
||||||
// we need an explicit traversal for this
|
// we need an explicit traversal for this
|
||||||
lfs3_trv_t trv;
|
lfs3_trv_t trv;
|
||||||
@@ -2268,12 +2206,9 @@ code = '''
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| ((!MKCONSISTENT) ? LFS3_I_MKCONSISTENT : 0)
|
| ((!MKCONSISTENT) ? LFS3_I_MKCONSISTENT : 0)
|
||||||
| ((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
| ((!LOOKAHEAD
|
||||||
| ((!LOOKGBMAP)
|
&& (!GBMAP || (fsinfo.flags & LFS3_I_LOOKAHEAD)))
|
||||||
? ((GBMAP)
|
? LFS3_I_LOOKAHEAD
|
||||||
? (LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1)
|
|
||||||
& fsinfo.flags)
|
|
||||||
: 0)
|
|
||||||
: 0)
|
: 0)
|
||||||
| ((!COMPACTMETA) ? LFS3_I_COMPACTMETA : 0)
|
| ((!COMPACTMETA) ? LFS3_I_COMPACTMETA : 0)
|
||||||
// note ckdata implies ckmeta
|
// note ckdata implies ckmeta
|
||||||
@@ -2290,13 +2225,9 @@ code = '''
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_MKCONSISTENT
|
| LFS3_I_MKCONSISTENT
|
||||||
| LFS3_I_LOOKAHEAD
|
| ((!GBMAP || (fsinfo.flags & LFS3_I_LOOKAHEAD))
|
||||||
| ((LOOKGBMAP)
|
? LFS3_I_LOOKAHEAD
|
||||||
? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1U)
|
: 0)
|
||||||
: (GBMAP)
|
|
||||||
? (LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1)
|
|
||||||
& fsinfo.flags)
|
|
||||||
: 0)
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
// note ckdata implies ckmeta, but uncking ckdata does
|
// note ckdata implies ckmeta, but uncking ckdata does
|
||||||
// _not_ imply uncking ckmeta
|
// _not_ imply uncking ckmeta
|
||||||
@@ -2320,9 +2251,6 @@ code = '''
|
|||||||
if (!(fsinfo.flags & (
|
if (!(fsinfo.flags & (
|
||||||
((MKCONSISTENT) ? LFS3_I_MKCONSISTENT : 0)
|
((MKCONSISTENT) ? LFS3_I_MKCONSISTENT : 0)
|
||||||
| ((LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
||||||
| ((LOOKGBMAP)
|
|
||||||
? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1)
|
|
||||||
: 0)
|
|
||||||
| ((COMPACTMETA) ? LFS3_I_COMPACTMETA : 0)
|
| ((COMPACTMETA) ? LFS3_I_COMPACTMETA : 0)
|
||||||
| ((CKMETA) ? LFS3_I_CKMETA : 0)
|
| ((CKMETA) ? LFS3_I_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS3_I_CKDATA : 0)))) {
|
| ((CKDATA) ? LFS3_I_CKDATA : 0)))) {
|
||||||
@@ -2352,9 +2280,6 @@ code = '''
|
|||||||
if (!(fsinfo.flags & (
|
if (!(fsinfo.flags & (
|
||||||
((MKCONSISTENT) ? LFS3_I_MKCONSISTENT : 0)
|
((MKCONSISTENT) ? LFS3_I_MKCONSISTENT : 0)
|
||||||
| ((LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
||||||
| ((LOOKGBMAP)
|
|
||||||
? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1)
|
|
||||||
: 0)
|
|
||||||
| ((COMPACTMETA) ? LFS3_I_COMPACTMETA : 0)
|
| ((COMPACTMETA) ? LFS3_I_COMPACTMETA : 0)
|
||||||
| ((CKMETA) ? LFS3_I_CKMETA : 0)
|
| ((CKMETA) ? LFS3_I_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS3_I_CKDATA : 0)))) {
|
| ((CKDATA) ? LFS3_I_CKDATA : 0)))) {
|
||||||
@@ -2381,24 +2306,6 @@ code = '''
|
|||||||
lfs3_trv_close(&lfs3, &trv) => 0;
|
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)) {
|
if (COMPACTMETA && (fsinfo.flags & LFS3_I_COMPACTMETA)) {
|
||||||
// we need an explicit traversal for this
|
// we need an explicit traversal for this
|
||||||
lfs3_trv_t trv;
|
lfs3_trv_t trv;
|
||||||
@@ -2439,12 +2346,9 @@ code = '''
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| ((!MKCONSISTENT) ? LFS3_I_MKCONSISTENT : 0)
|
| ((!MKCONSISTENT) ? LFS3_I_MKCONSISTENT : 0)
|
||||||
| ((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
| ((!LOOKAHEAD
|
||||||
| ((!LOOKGBMAP)
|
&& (!GBMAP || (fsinfo.flags & LFS3_I_LOOKAHEAD)))
|
||||||
? ((GBMAP)
|
? LFS3_I_LOOKAHEAD
|
||||||
? (LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1)
|
|
||||||
& fsinfo.flags)
|
|
||||||
: 0)
|
|
||||||
: 0)
|
: 0)
|
||||||
| ((!COMPACTMETA) ? LFS3_I_COMPACTMETA : 0)
|
| ((!COMPACTMETA) ? LFS3_I_COMPACTMETA : 0)
|
||||||
// note ckdata implies ckmeta
|
// note ckdata implies ckmeta
|
||||||
@@ -2461,14 +2365,12 @@ code = '''
|
|||||||
defines.N = 100
|
defines.N = 100
|
||||||
defines.MKCONSISTENT = [false, true]
|
defines.MKCONSISTENT = [false, true]
|
||||||
defines.LOOKAHEAD = [false, true]
|
defines.LOOKAHEAD = [false, true]
|
||||||
defines.LOOKGBMAP = [false, true]
|
|
||||||
defines.COMPACTMETA = [false, true]
|
defines.COMPACTMETA = [false, true]
|
||||||
defines.CKMETA = [false, true]
|
defines.CKMETA = [false, true]
|
||||||
defines.CKDATA = [false, true]
|
defines.CKDATA = [false, true]
|
||||||
defines.GC_FLAGS = '''
|
defines.GC_FLAGS = '''
|
||||||
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
|
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
|
||||||
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
|
||||||
| ((LOOKGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_LOOKGBMAP, -1) : 0)
|
|
||||||
| ((COMPACTMETA) ? LFS3_GC_COMPACTMETA : 0)
|
| ((COMPACTMETA) ? LFS3_GC_COMPACTMETA : 0)
|
||||||
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
|
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
|
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
|
||||||
@@ -2484,7 +2386,6 @@ defines.SIZE = [
|
|||||||
'2*BLOCK_SIZE',
|
'2*BLOCK_SIZE',
|
||||||
'8*BLOCK_SIZE',
|
'8*BLOCK_SIZE',
|
||||||
]
|
]
|
||||||
if = 'GBMAP || !LOOKGBMAP'
|
|
||||||
ifdef = 'LFS3_GC'
|
ifdef = 'LFS3_GC'
|
||||||
code = '''
|
code = '''
|
||||||
lfs3_t lfs3;
|
lfs3_t lfs3;
|
||||||
@@ -2536,14 +2437,12 @@ code = '''
|
|||||||
defines.N = 100
|
defines.N = 100
|
||||||
defines.MKCONSISTENT = [false, true]
|
defines.MKCONSISTENT = [false, true]
|
||||||
defines.LOOKAHEAD = [false, true]
|
defines.LOOKAHEAD = [false, true]
|
||||||
defines.LOOKGBMAP = [false, true]
|
|
||||||
defines.COMPACTMETA = [false, true]
|
defines.COMPACTMETA = [false, true]
|
||||||
defines.CKMETA = [false, true]
|
defines.CKMETA = [false, true]
|
||||||
defines.CKDATA = [false, true]
|
defines.CKDATA = [false, true]
|
||||||
defines.GC_FLAGS = '''
|
defines.GC_FLAGS = '''
|
||||||
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
|
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
|
||||||
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
|
||||||
| ((LOOKGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_LOOKGBMAP, -1) : 0)
|
|
||||||
| ((COMPACTMETA) ? LFS3_GC_COMPACTMETA : 0)
|
| ((COMPACTMETA) ? LFS3_GC_COMPACTMETA : 0)
|
||||||
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
|
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
|
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
|
||||||
@@ -2559,7 +2458,6 @@ defines.SIZE = [
|
|||||||
'2*BLOCK_SIZE',
|
'2*BLOCK_SIZE',
|
||||||
'8*BLOCK_SIZE',
|
'8*BLOCK_SIZE',
|
||||||
]
|
]
|
||||||
if = 'GBMAP || !LOOKGBMAP'
|
|
||||||
ifdef = 'LFS3_GC'
|
ifdef = 'LFS3_GC'
|
||||||
code = '''
|
code = '''
|
||||||
lfs3_t lfs3;
|
lfs3_t lfs3;
|
||||||
@@ -2614,14 +2512,12 @@ code = '''
|
|||||||
[cases.test_gc_nospc]
|
[cases.test_gc_nospc]
|
||||||
defines.MKCONSISTENT = [false, true]
|
defines.MKCONSISTENT = [false, true]
|
||||||
defines.LOOKAHEAD = [false, true]
|
defines.LOOKAHEAD = [false, true]
|
||||||
defines.LOOKGBMAP = [false, true]
|
|
||||||
defines.COMPACTMETA = [false, true]
|
defines.COMPACTMETA = [false, true]
|
||||||
defines.CKMETA = [false, true]
|
defines.CKMETA = [false, true]
|
||||||
defines.CKDATA = [false, true]
|
defines.CKDATA = [false, true]
|
||||||
defines.GC_FLAGS = '''
|
defines.GC_FLAGS = '''
|
||||||
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
|
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
|
||||||
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
|
||||||
| ((LOOKGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_LOOKGBMAP, -1) : 0)
|
|
||||||
| ((COMPACTMETA) ? LFS3_GC_COMPACTMETA : 0)
|
| ((COMPACTMETA) ? LFS3_GC_COMPACTMETA : 0)
|
||||||
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
|
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
|
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
|
||||||
@@ -2631,7 +2527,6 @@ defines.GC_STEPS = [1, 2, 10, 100, 1000]
|
|||||||
# set compactmeta thresh to minimum
|
# set compactmeta thresh to minimum
|
||||||
defines.GC_COMPACTMETA_THRESH = 'BLOCK_SIZE/2'
|
defines.GC_COMPACTMETA_THRESH = 'BLOCK_SIZE/2'
|
||||||
defines.SIZE = 'BLOCK_SIZE'
|
defines.SIZE = 'BLOCK_SIZE'
|
||||||
if = 'GBMAP || !LOOKGBMAP'
|
|
||||||
ifdef = 'LFS3_GC'
|
ifdef = 'LFS3_GC'
|
||||||
code = '''
|
code = '''
|
||||||
lfs3_t lfs3;
|
lfs3_t lfs3;
|
||||||
@@ -2722,7 +2617,6 @@ code = '''
|
|||||||
[cases.test_gc_spam_dir_many]
|
[cases.test_gc_spam_dir_many]
|
||||||
defines.MKCONSISTENT = [false, true]
|
defines.MKCONSISTENT = [false, true]
|
||||||
defines.LOOKAHEAD = [false, true]
|
defines.LOOKAHEAD = [false, true]
|
||||||
defines.LOOKGBMAP = [false, true]
|
|
||||||
defines.COMPACTMETA = [false, true]
|
defines.COMPACTMETA = [false, true]
|
||||||
defines.CKMETA = [false, true]
|
defines.CKMETA = [false, true]
|
||||||
defines.CKDATA = [false, true]
|
defines.CKDATA = [false, true]
|
||||||
@@ -2730,7 +2624,6 @@ defines.UNCK = [false, true]
|
|||||||
defines.GC_FLAGS = '''
|
defines.GC_FLAGS = '''
|
||||||
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
|
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
|
||||||
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
|
||||||
| ((LOOKGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_LOOKGBMAP, -1) : 0)
|
|
||||||
| ((COMPACTMETA) ? LFS3_GC_COMPACTMETA : 0)
|
| ((COMPACTMETA) ? LFS3_GC_COMPACTMETA : 0)
|
||||||
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
|
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
|
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
|
||||||
@@ -2739,7 +2632,6 @@ defines.GC_STEPS = [-1, 1, 2, 10, 100, 1000]
|
|||||||
# set compactmeta thresh to minimum
|
# set compactmeta thresh to minimum
|
||||||
defines.GC_COMPACTMETA_THRESH = 'BLOCK_SIZE/2'
|
defines.GC_COMPACTMETA_THRESH = 'BLOCK_SIZE/2'
|
||||||
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256]
|
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256]
|
||||||
if = 'GBMAP || !LOOKGBMAP'
|
|
||||||
ifdef = 'LFS3_GC'
|
ifdef = 'LFS3_GC'
|
||||||
code = '''
|
code = '''
|
||||||
// test creating directories
|
// test creating directories
|
||||||
@@ -2832,7 +2724,6 @@ code = '''
|
|||||||
[cases.test_gc_spam_dir_fuzz]
|
[cases.test_gc_spam_dir_fuzz]
|
||||||
defines.MKCONSISTENT = [false, true]
|
defines.MKCONSISTENT = [false, true]
|
||||||
defines.LOOKAHEAD = [false, true]
|
defines.LOOKAHEAD = [false, true]
|
||||||
defines.LOOKGBMAP = [false, true]
|
|
||||||
defines.COMPACTMETA = [false, true]
|
defines.COMPACTMETA = [false, true]
|
||||||
defines.CKMETA = [false, true]
|
defines.CKMETA = [false, true]
|
||||||
defines.CKDATA = [false, true]
|
defines.CKDATA = [false, true]
|
||||||
@@ -2840,7 +2731,6 @@ defines.UNCK = [false, true]
|
|||||||
defines.GC_FLAGS = '''
|
defines.GC_FLAGS = '''
|
||||||
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
|
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
|
||||||
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
|
||||||
| ((LOOKGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_LOOKGBMAP, -1) : 0)
|
|
||||||
| ((COMPACTMETA) ? LFS3_GC_COMPACTMETA : 0)
|
| ((COMPACTMETA) ? LFS3_GC_COMPACTMETA : 0)
|
||||||
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
|
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS3_GC_CKDATA : 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.OPS = '2*N'
|
||||||
defines.SEED = 42
|
defines.SEED = 42
|
||||||
fuzz = 'SEED'
|
fuzz = 'SEED'
|
||||||
if = 'GBMAP || !LOOKGBMAP'
|
|
||||||
ifdef = 'LFS3_GC'
|
ifdef = 'LFS3_GC'
|
||||||
code = '''
|
code = '''
|
||||||
// test fuzz with dirs
|
// test fuzz with dirs
|
||||||
@@ -3013,7 +2902,6 @@ code = '''
|
|||||||
[cases.test_gc_spam_file_many]
|
[cases.test_gc_spam_file_many]
|
||||||
defines.MKCONSISTENT = [false, true]
|
defines.MKCONSISTENT = [false, true]
|
||||||
defines.LOOKAHEAD = [false, true]
|
defines.LOOKAHEAD = [false, true]
|
||||||
defines.LOOKGBMAP = [false, true]
|
|
||||||
defines.COMPACTMETA = [false, true]
|
defines.COMPACTMETA = [false, true]
|
||||||
defines.CKMETA = [false, true]
|
defines.CKMETA = [false, true]
|
||||||
defines.CKDATA = [false, true]
|
defines.CKDATA = [false, true]
|
||||||
@@ -3021,7 +2909,6 @@ defines.UNCK = [false, true]
|
|||||||
defines.GC_FLAGS = '''
|
defines.GC_FLAGS = '''
|
||||||
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
|
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
|
||||||
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
|
||||||
| ((LOOKGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_LOOKGBMAP, -1) : 0)
|
|
||||||
| ((COMPACTMETA) ? LFS3_GC_COMPACTMETA : 0)
|
| ((COMPACTMETA) ? LFS3_GC_COMPACTMETA : 0)
|
||||||
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
|
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
|
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
|
||||||
@@ -3039,10 +2926,7 @@ defines.SIZE = [
|
|||||||
'2*BLOCK_SIZE',
|
'2*BLOCK_SIZE',
|
||||||
'4*BLOCK_SIZE',
|
'4*BLOCK_SIZE',
|
||||||
]
|
]
|
||||||
if = [
|
if = '(SIZE*N)/BLOCK_SIZE <= 32'
|
||||||
'(SIZE*N)/BLOCK_SIZE <= 32',
|
|
||||||
'GBMAP || !LOOKGBMAP',
|
|
||||||
]
|
|
||||||
ifdef = 'LFS3_GC'
|
ifdef = 'LFS3_GC'
|
||||||
code = '''
|
code = '''
|
||||||
// test creating files
|
// test creating files
|
||||||
@@ -3119,7 +3003,6 @@ code = '''
|
|||||||
[cases.test_gc_spam_file_fuzz]
|
[cases.test_gc_spam_file_fuzz]
|
||||||
defines.MKCONSISTENT = [false, true]
|
defines.MKCONSISTENT = [false, true]
|
||||||
defines.LOOKAHEAD = [false, true]
|
defines.LOOKAHEAD = [false, true]
|
||||||
defines.LOOKGBMAP = [false, true]
|
|
||||||
defines.COMPACTMETA = [false, true]
|
defines.COMPACTMETA = [false, true]
|
||||||
defines.CKMETA = [false, true]
|
defines.CKMETA = [false, true]
|
||||||
defines.CKDATA = [false, true]
|
defines.CKDATA = [false, true]
|
||||||
@@ -3127,7 +3010,6 @@ defines.UNCK = [false, true]
|
|||||||
defines.GC_FLAGS = '''
|
defines.GC_FLAGS = '''
|
||||||
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
|
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
|
||||||
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
|
||||||
| ((LOOKGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_LOOKGBMAP, -1) : 0)
|
|
||||||
| ((COMPACTMETA) ? LFS3_GC_COMPACTMETA : 0)
|
| ((COMPACTMETA) ? LFS3_GC_COMPACTMETA : 0)
|
||||||
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
|
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
|
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
|
||||||
@@ -3148,10 +3030,7 @@ defines.SIZE = [
|
|||||||
]
|
]
|
||||||
defines.SEED = 42
|
defines.SEED = 42
|
||||||
fuzz = 'SEED'
|
fuzz = 'SEED'
|
||||||
if = [
|
if = '(SIZE*N)/BLOCK_SIZE <= 16'
|
||||||
'(SIZE*N)/BLOCK_SIZE <= 16',
|
|
||||||
'GBMAP || !LOOKGBMAP',
|
|
||||||
]
|
|
||||||
ifdef = 'LFS3_GC'
|
ifdef = 'LFS3_GC'
|
||||||
code = '''
|
code = '''
|
||||||
// test fuzz with files
|
// test fuzz with files
|
||||||
@@ -3364,7 +3243,6 @@ code = '''
|
|||||||
[cases.test_gc_spam_fwrite_fuzz]
|
[cases.test_gc_spam_fwrite_fuzz]
|
||||||
defines.MKCONSISTENT = [false, true]
|
defines.MKCONSISTENT = [false, true]
|
||||||
defines.LOOKAHEAD = [false, true]
|
defines.LOOKAHEAD = [false, true]
|
||||||
defines.LOOKGBMAP = [false, true]
|
|
||||||
defines.COMPACTMETA = [false, true]
|
defines.COMPACTMETA = [false, true]
|
||||||
defines.CKMETA = [false, true]
|
defines.CKMETA = [false, true]
|
||||||
defines.CKDATA = [false, true]
|
defines.CKDATA = [false, true]
|
||||||
@@ -3372,7 +3250,6 @@ defines.UNCK = [false, true]
|
|||||||
defines.GC_FLAGS = '''
|
defines.GC_FLAGS = '''
|
||||||
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
|
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
|
||||||
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
|
||||||
| ((LOOKGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_LOOKGBMAP, -1) : 0)
|
|
||||||
| ((COMPACTMETA) ? LFS3_GC_COMPACTMETA : 0)
|
| ((COMPACTMETA) ? LFS3_GC_COMPACTMETA : 0)
|
||||||
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
|
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
|
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
|
||||||
@@ -3402,7 +3279,6 @@ if = [
|
|||||||
'CHUNK <= SIZE',
|
'CHUNK <= SIZE',
|
||||||
# this just saves testing time
|
# this just saves testing time
|
||||||
'SIZE <= 4*1024*FRAGMENT_SIZE',
|
'SIZE <= 4*1024*FRAGMENT_SIZE',
|
||||||
'GBMAP || !LOOKGBMAP',
|
|
||||||
]
|
]
|
||||||
ifdef = 'LFS3_GC'
|
ifdef = 'LFS3_GC'
|
||||||
code = '''
|
code = '''
|
||||||
@@ -3527,7 +3403,6 @@ code = '''
|
|||||||
[cases.test_gc_spam_uz_fuzz]
|
[cases.test_gc_spam_uz_fuzz]
|
||||||
defines.MKCONSISTENT = [false, true]
|
defines.MKCONSISTENT = [false, true]
|
||||||
defines.LOOKAHEAD = [false, true]
|
defines.LOOKAHEAD = [false, true]
|
||||||
defines.LOOKGBMAP = [false, true]
|
|
||||||
defines.COMPACTMETA = [false, true]
|
defines.COMPACTMETA = [false, true]
|
||||||
defines.CKMETA = [false, true]
|
defines.CKMETA = [false, true]
|
||||||
defines.CKDATA = [false, true]
|
defines.CKDATA = [false, true]
|
||||||
@@ -3535,7 +3410,6 @@ defines.UNCK = [false, true]
|
|||||||
defines.GC_FLAGS = '''
|
defines.GC_FLAGS = '''
|
||||||
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
|
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
|
||||||
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
|
||||||
| ((LOOKGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_LOOKGBMAP, -1) : 0)
|
|
||||||
| ((COMPACTMETA) ? LFS3_GC_COMPACTMETA : 0)
|
| ((COMPACTMETA) ? LFS3_GC_COMPACTMETA : 0)
|
||||||
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
|
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
|
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
|
||||||
@@ -3558,10 +3432,7 @@ defines.SIZE = [
|
|||||||
]
|
]
|
||||||
defines.SEED = 42
|
defines.SEED = 42
|
||||||
fuzz = 'SEED'
|
fuzz = 'SEED'
|
||||||
if = [
|
if = '(SIZE*N)/BLOCK_SIZE <= 16'
|
||||||
'(SIZE*N)/BLOCK_SIZE <= 16',
|
|
||||||
'GBMAP || !LOOKGBMAP',
|
|
||||||
]
|
|
||||||
ifdef = 'LFS3_GC'
|
ifdef = 'LFS3_GC'
|
||||||
code = '''
|
code = '''
|
||||||
// test with uncreats, zombies, etc
|
// test with uncreats, zombies, etc
|
||||||
@@ -3983,7 +3854,6 @@ code = '''
|
|||||||
[cases.test_gc_spam_uzd_fuzz]
|
[cases.test_gc_spam_uzd_fuzz]
|
||||||
defines.MKCONSISTENT = [false, true]
|
defines.MKCONSISTENT = [false, true]
|
||||||
defines.LOOKAHEAD = [false, true]
|
defines.LOOKAHEAD = [false, true]
|
||||||
defines.LOOKGBMAP = [false, true]
|
|
||||||
defines.COMPACTMETA = [false, true]
|
defines.COMPACTMETA = [false, true]
|
||||||
defines.CKMETA = [false, true]
|
defines.CKMETA = [false, true]
|
||||||
defines.CKDATA = [false, true]
|
defines.CKDATA = [false, true]
|
||||||
@@ -3991,7 +3861,6 @@ defines.UNCK = [false, true]
|
|||||||
defines.GC_FLAGS = '''
|
defines.GC_FLAGS = '''
|
||||||
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
|
((MKCONSISTENT) ? LFS3_GC_MKCONSISTENT : 0)
|
||||||
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS3_GC_LOOKAHEAD : 0)
|
||||||
| ((LOOKGBMAP) ? LFS3_IFDEF_GBMAP(LFS3_GC_LOOKGBMAP, -1) : 0)
|
|
||||||
| ((COMPACTMETA) ? LFS3_GC_COMPACTMETA : 0)
|
| ((COMPACTMETA) ? LFS3_GC_COMPACTMETA : 0)
|
||||||
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
|
| ((CKMETA) ? LFS3_GC_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
|
| ((CKDATA) ? LFS3_GC_CKDATA : 0)
|
||||||
@@ -4014,10 +3883,7 @@ defines.SIZE = [
|
|||||||
]
|
]
|
||||||
defines.SEED = 42
|
defines.SEED = 42
|
||||||
fuzz = 'SEED'
|
fuzz = 'SEED'
|
||||||
if = [
|
if = '(SIZE*N)/BLOCK_SIZE <= 16'
|
||||||
'(SIZE*N)/BLOCK_SIZE <= 16',
|
|
||||||
'GBMAP || !LOOKGBMAP',
|
|
||||||
]
|
|
||||||
ifdef = 'LFS3_GC'
|
ifdef = 'LFS3_GC'
|
||||||
code = '''
|
code = '''
|
||||||
// test with uncreats, zombies, dirs, etc
|
// test with uncreats, zombies, dirs, etc
|
||||||
|
|||||||
+190
-89
@@ -1,12 +1,23 @@
|
|||||||
# Advanced mount tests
|
# Advanced mount tests
|
||||||
after = ['test_mtree', 'test_trvs']
|
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
|
# test we can mount
|
||||||
[cases.test_mount_simple]
|
[cases.test_mount_simple]
|
||||||
code = '''
|
code = '''
|
||||||
lfs3_t lfs3;
|
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_mount(&lfs3, LFS3_M_RDWR, CFG) => 0;
|
||||||
lfs3_unmount(&lfs3) => 0;
|
lfs3_unmount(&lfs3) => 0;
|
||||||
'''
|
'''
|
||||||
@@ -25,7 +36,6 @@ defines.CKMETAPARITY = [false, true]
|
|||||||
defines.CKDATACKSUMS = [false, true]
|
defines.CKDATACKSUMS = [false, true]
|
||||||
defines.MKCONSISTENT = [false, true]
|
defines.MKCONSISTENT = [false, true]
|
||||||
defines.LOOKAHEAD = [false, true]
|
defines.LOOKAHEAD = [false, true]
|
||||||
defines.LOOKGBMAP = [false, true]
|
|
||||||
defines.COMPACTMETA = [false, true]
|
defines.COMPACTMETA = [false, true]
|
||||||
defines.CKMETA = [false, true]
|
defines.CKMETA = [false, true]
|
||||||
defines.CKDATA = [false, true]
|
defines.CKDATA = [false, true]
|
||||||
@@ -38,13 +48,14 @@ if = [
|
|||||||
'LFS3_IFDEF_CKDATACKSUMS(true, !CKDATACKSUMS)',
|
'LFS3_IFDEF_CKDATACKSUMS(true, !CKDATACKSUMS)',
|
||||||
'!RDONLY || !MKCONSISTENT',
|
'!RDONLY || !MKCONSISTENT',
|
||||||
'!RDONLY || !LOOKAHEAD',
|
'!RDONLY || !LOOKAHEAD',
|
||||||
'LFS3_IFDEF_YES_GBMAP(true, !LOOKGBMAP)',
|
|
||||||
'!RDONLY || !LOOKGBMAP',
|
|
||||||
'!RDONLY || !COMPACTMETA',
|
'!RDONLY || !COMPACTMETA',
|
||||||
]
|
]
|
||||||
code = '''
|
code = '''
|
||||||
lfs3_t lfs3;
|
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_mount(&lfs3,
|
||||||
((RDONLY) ? LFS3_M_RDONLY : LFS3_M_RDWR)
|
((RDONLY) ? LFS3_M_RDONLY : LFS3_M_RDWR)
|
||||||
| ((FLUSH) ? LFS3_M_FLUSH : 0)
|
| ((FLUSH) ? LFS3_M_FLUSH : 0)
|
||||||
@@ -61,9 +72,6 @@ code = '''
|
|||||||
: 0)
|
: 0)
|
||||||
| ((MKCONSISTENT) ? LFS3_M_MKCONSISTENT : 0)
|
| ((MKCONSISTENT) ? LFS3_M_MKCONSISTENT : 0)
|
||||||
| ((LOOKAHEAD) ? LFS3_M_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS3_M_LOOKAHEAD : 0)
|
||||||
| ((LOOKGBMAP)
|
|
||||||
? LFS3_IFDEF_GBMAP(LFS3_M_LOOKGBMAP, -1)
|
|
||||||
: 0)
|
|
||||||
| ((COMPACTMETA) ? LFS3_M_COMPACTMETA : 0)
|
| ((COMPACTMETA) ? LFS3_M_COMPACTMETA : 0)
|
||||||
| ((CKMETA) ? LFS3_M_CKMETA : 0)
|
| ((CKMETA) ? LFS3_M_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS3_M_CKDATA : 0),
|
| ((CKDATA) ? LFS3_M_CKDATA : 0),
|
||||||
@@ -87,12 +95,12 @@ code = '''
|
|||||||
? LFS3_IFDEF_CKDATACKSUMS(LFS3_I_CKDATACKSUMS, -1)
|
? LFS3_IFDEF_CKDATACKSUMS(LFS3_I_CKDATACKSUMS, -1)
|
||||||
: 0)
|
: 0)
|
||||||
| ((!MKCONSISTENT) ? LFS3_I_MKCONSISTENT : 0)
|
| ((!MKCONSISTENT) ? LFS3_I_MKCONSISTENT : 0)
|
||||||
| ((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
| ((!LOOKAHEAD && !GBMAP) ? LFS3_I_LOOKAHEAD : 0)
|
||||||
| ((!COMPACTMETA) ? LFS3_I_COMPACTMETA : 0)
|
| ((!COMPACTMETA) ? LFS3_I_COMPACTMETA : 0)
|
||||||
// note ckdata implies ckmeta
|
// note ckdata implies ckmeta
|
||||||
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
|
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
|
||||||
| ((!CKDATA) ? LFS3_I_CKDATA : 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;
|
lfs3_unmount(&lfs3) => 0;
|
||||||
'''
|
'''
|
||||||
@@ -109,11 +117,9 @@ defines.CKMETAPARITY = [false, true]
|
|||||||
defines.CKDATACKSUMS = [false, true]
|
defines.CKDATACKSUMS = [false, true]
|
||||||
defines.MKCONSISTENT = [false, true]
|
defines.MKCONSISTENT = [false, true]
|
||||||
defines.LOOKAHEAD = [false, true]
|
defines.LOOKAHEAD = [false, true]
|
||||||
defines.LOOKGBMAP = [false, true]
|
|
||||||
defines.COMPACTMETA = [false, true]
|
defines.COMPACTMETA = [false, true]
|
||||||
defines.CKMETA = [false, true]
|
defines.CKMETA = [false, true]
|
||||||
defines.CKDATA = [false, true]
|
defines.CKDATA = [false, true]
|
||||||
defines.GBMAP = [false, true]
|
|
||||||
if = [
|
if = [
|
||||||
'LFS3_IFDEF_YES_REVDBG(REVDBG, LFS3_IFDEF_REVDBG(true, !REVDBG))',
|
'LFS3_IFDEF_YES_REVDBG(REVDBG, LFS3_IFDEF_REVDBG(true, !REVDBG))',
|
||||||
'LFS3_IFDEF_YES_REVNOISE(REVNOISE, LFS3_IFDEF_REVNOISE(true, !REVNOISE))',
|
'LFS3_IFDEF_YES_REVNOISE(REVNOISE, LFS3_IFDEF_REVNOISE(true, !REVNOISE))',
|
||||||
@@ -121,8 +127,6 @@ if = [
|
|||||||
'LFS3_IFDEF_CKFETCHES(true, !CKFETCHES)',
|
'LFS3_IFDEF_CKFETCHES(true, !CKFETCHES)',
|
||||||
'LFS3_IFDEF_CKMETAPARITY(true, !CKMETAPARITY)',
|
'LFS3_IFDEF_CKMETAPARITY(true, !CKMETAPARITY)',
|
||||||
'LFS3_IFDEF_CKDATACKSUMS(true, !CKDATACKSUMS)',
|
'LFS3_IFDEF_CKDATACKSUMS(true, !CKDATACKSUMS)',
|
||||||
'LFS3_IFDEF_YES_GBMAP(true, !LOOKGBMAP)',
|
|
||||||
'LFS3_IFDEF_GBMAP(true, !GBMAP)',
|
|
||||||
]
|
]
|
||||||
code = '''
|
code = '''
|
||||||
lfs3_t lfs3;
|
lfs3_t lfs3;
|
||||||
@@ -140,9 +144,6 @@ code = '''
|
|||||||
: 0)
|
: 0)
|
||||||
| ((MKCONSISTENT) ? LFS3_F_MKCONSISTENT : 0)
|
| ((MKCONSISTENT) ? LFS3_F_MKCONSISTENT : 0)
|
||||||
| ((LOOKAHEAD) ? LFS3_F_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS3_F_LOOKAHEAD : 0)
|
||||||
| ((LOOKGBMAP)
|
|
||||||
? LFS3_IFDEF_GBMAP(LFS3_F_LOOKGBMAP, -1)
|
|
||||||
: 0)
|
|
||||||
| ((COMPACTMETA) ? LFS3_F_COMPACTMETA : 0)
|
| ((COMPACTMETA) ? LFS3_F_COMPACTMETA : 0)
|
||||||
| ((CKMETA) ? LFS3_F_CKMETA : 0)
|
| ((CKMETA) ? LFS3_F_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS3_F_CKDATA : 0)
|
| ((CKDATA) ? LFS3_F_CKDATA : 0)
|
||||||
@@ -157,13 +158,11 @@ code = '''
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_MKCONSISTENT
|
| LFS3_I_MKCONSISTENT
|
||||||
| LFS3_I_LOOKAHEAD
|
| ((!GBMAP) ? LFS3_I_LOOKAHEAD : 0)
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
| LFS3_IFDEF_YES_GBMAP(
|
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_GBMAP, -1) : 0)));
|
||||||
LFS3_I_GBMAP,
|
|
||||||
(GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_GBMAP, -1) : 0)));
|
|
||||||
|
|
||||||
lfs3_unmount(&lfs3) => 0;
|
lfs3_unmount(&lfs3) => 0;
|
||||||
'''
|
'''
|
||||||
@@ -171,14 +170,20 @@ code = '''
|
|||||||
|
|
||||||
# test that on-mount traversals do what they say they do
|
# 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.CKMETA = [false, true]
|
||||||
defines.CKDATA = [false, true]
|
defines.CKDATA = [false, true]
|
||||||
code = '''
|
code = '''
|
||||||
lfs3_t lfs3;
|
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
|
// 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;
|
lfs3_mount(&lfs3, LFS3_M_RDWR, CFG) => 0;
|
||||||
struct lfs3_fsinfo fsinfo;
|
struct lfs3_fsinfo fsinfo;
|
||||||
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
lfs3_fs_stat(&lfs3, &fsinfo) => 0;
|
||||||
@@ -186,11 +191,11 @@ code = '''
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_MKCONSISTENT
|
| LFS3_I_MKCONSISTENT
|
||||||
| LFS3_I_LOOKAHEAD
|
| ((!GBMAP) ? LFS3_I_LOOKAHEAD : 0)
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
| LFS3_IFDEF_YES_GBMAP(LFS3_I_GBMAP, 0)));
|
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_GBMAP, -1) : 0)));
|
||||||
lfs3_unmount(&lfs3) => 0;
|
lfs3_unmount(&lfs3) => 0;
|
||||||
|
|
||||||
// with LFS3_M_LOOKAHEAD, mount performs a lookahead scan
|
// with LFS3_M_LOOKAHEAD, mount performs a lookahead scan
|
||||||
@@ -209,12 +214,11 @@ code = '''
|
|||||||
// note ckdata implies ckmeta
|
// note ckdata implies ckmeta
|
||||||
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
|
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
|
||||||
| ((!CKDATA) ? LFS3_I_CKDATA : 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;
|
lfs3_unmount(&lfs3) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
[cases.test_mount_t_regbmap]
|
[cases.test_mount_t_lookgbmap]
|
||||||
ifdef = 'LFS3_GBMAP'
|
|
||||||
defines.CKMETA = [false, true]
|
defines.CKMETA = [false, true]
|
||||||
defines.CKDATA = [false, true]
|
defines.CKDATA = [false, true]
|
||||||
defines.SIZE = [
|
defines.SIZE = [
|
||||||
@@ -223,9 +227,14 @@ defines.SIZE = [
|
|||||||
'2*BLOCK_SIZE',
|
'2*BLOCK_SIZE',
|
||||||
'8*BLOCK_SIZE',
|
'8*BLOCK_SIZE',
|
||||||
]
|
]
|
||||||
|
ifdef = 'LFS3_GBMAP'
|
||||||
|
if = 'GBMAP'
|
||||||
code = '''
|
code = '''
|
||||||
lfs3_t lfs3;
|
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;
|
uint32_t prng = 42;
|
||||||
|
|
||||||
@@ -237,11 +246,10 @@ code = '''
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_MKCONSISTENT
|
| LFS3_I_MKCONSISTENT
|
||||||
| LFS3_I_LOOKAHEAD
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
| LFS3_IFDEF_GBMAP(LFS3_I_GBMAP, 0)));
|
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_GBMAP, -1) : 0)));
|
||||||
// write to a file
|
// write to a file
|
||||||
lfs3_file_t file;
|
lfs3_file_t file;
|
||||||
lfs3_file_open(&lfs3, &file, "jellyfish",
|
lfs3_file_open(&lfs3, &file, "jellyfish",
|
||||||
@@ -262,18 +270,16 @@ code = '''
|
|||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_MKCONSISTENT
|
| LFS3_I_MKCONSISTENT
|
||||||
| LFS3_I_LOOKAHEAD
|
| LFS3_I_LOOKAHEAD
|
||||||
| LFS3_I_LOOKGBMAP
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
| LFS3_IFDEF_GBMAP(LFS3_I_GBMAP, 0)));
|
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_GBMAP, -1) : 0)));
|
||||||
lfs3_unmount(&lfs3) => 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_mount(&lfs3,
|
||||||
LFS3_M_RDWR
|
LFS3_M_RDWR
|
||||||
| LFS3_M_LOOKAHEAD
|
| LFS3_M_LOOKAHEAD
|
||||||
| LFS3_M_LOOKGBMAP
|
|
||||||
| ((CKMETA) ? LFS3_M_CKMETA : 0)
|
| ((CKMETA) ? LFS3_M_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS3_M_CKDATA : 0),
|
| ((CKDATA) ? LFS3_M_CKDATA : 0),
|
||||||
CFG) => 0;
|
CFG) => 0;
|
||||||
@@ -286,7 +292,7 @@ code = '''
|
|||||||
// note ckdata implies ckmeta
|
// note ckdata implies ckmeta
|
||||||
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
|
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
|
||||||
| ((!CKDATA) ? LFS3_I_CKDATA : 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;
|
lfs3_unmount(&lfs3) => 0;
|
||||||
'''
|
'''
|
||||||
|
|
||||||
@@ -306,7 +312,10 @@ defines.SIZE = [
|
|||||||
defines.GC_COMPACTMETA_THRESH = 'BLOCK_SIZE/2'
|
defines.GC_COMPACTMETA_THRESH = 'BLOCK_SIZE/2'
|
||||||
code = '''
|
code = '''
|
||||||
lfs3_t lfs3;
|
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;
|
uint32_t prng = 42;
|
||||||
|
|
||||||
@@ -340,14 +349,13 @@ code = '''
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_MKCONSISTENT
|
| LFS3_I_MKCONSISTENT
|
||||||
| LFS3_I_LOOKAHEAD
|
| ((!GBMAP || SIZE >= BLOCK_SIZE/4)
|
||||||
| LFS3_IFDEF_YES_GBMAP(
|
? LFS3_I_LOOKAHEAD
|
||||||
(SIZE >= BLOCK_SIZE/4) ? LFS3_I_LOOKGBMAP : 0,
|
: 0)
|
||||||
0)
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
| LFS3_IFDEF_YES_GBMAP(LFS3_I_GBMAP, 0)));
|
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_GBMAP, -1) : 0)));
|
||||||
lfs3_unmount(&lfs3) => 0;
|
lfs3_unmount(&lfs3) => 0;
|
||||||
|
|
||||||
// with LFS3_M_COMPACTMETA, mount compacts any uncompacted blocks
|
// 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_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_MKCONSISTENT
|
| LFS3_I_MKCONSISTENT
|
||||||
| ((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
| ((!LOOKAHEAD && (!GBMAP || SIZE >= BLOCK_SIZE/4))
|
||||||
| LFS3_IFDEF_YES_GBMAP(
|
? LFS3_I_LOOKAHEAD
|
||||||
(SIZE >= BLOCK_SIZE/4) ? LFS3_I_LOOKGBMAP : 0,
|
: 0)
|
||||||
0)
|
|
||||||
// note ckdata implies ckmeta
|
// note ckdata implies ckmeta
|
||||||
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
|
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
|
||||||
| ((!CKDATA) ? LFS3_I_CKDATA : 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
|
// mdir should have been compacted
|
||||||
lfs3_file_open(&lfs3, &file, "jellyfish", LFS3_O_RDONLY) => 0;
|
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]
|
defines.ORPHANS = [0, 1, 2, 3, 100]
|
||||||
code = '''
|
code = '''
|
||||||
lfs3_t lfs3;
|
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;
|
uint32_t prng = 42;
|
||||||
|
|
||||||
@@ -454,14 +464,13 @@ code = '''
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_MKCONSISTENT
|
| LFS3_I_MKCONSISTENT
|
||||||
| LFS3_I_LOOKAHEAD
|
| ((!GBMAP || ORPHANS >= 100)
|
||||||
| LFS3_IFDEF_YES_GBMAP(
|
? LFS3_I_LOOKAHEAD
|
||||||
(ORPHANS >= 100) ? LFS3_I_LOOKGBMAP : 0,
|
: 0)
|
||||||
0)
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
| LFS3_IFDEF_YES_GBMAP(LFS3_I_GBMAP, 0)));
|
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_GBMAP, -1) : 0)));
|
||||||
lfs3_unmount(&lfs3) => 0;
|
lfs3_unmount(&lfs3) => 0;
|
||||||
|
|
||||||
// with LFS3_M_MKCONSISTENT, mount cleans up orphans eagerly
|
// with LFS3_M_MKCONSISTENT, mount cleans up orphans eagerly
|
||||||
@@ -477,15 +486,14 @@ code = '''
|
|||||||
assert(fsinfo.flags == (
|
assert(fsinfo.flags == (
|
||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| ((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
| ((!LOOKAHEAD && (!GBMAP || ORPHANS >= 100))
|
||||||
| LFS3_IFDEF_YES_GBMAP(
|
? LFS3_I_LOOKAHEAD
|
||||||
(ORPHANS >= 100) ? LFS3_I_LOOKGBMAP : 0,
|
: 0)
|
||||||
0)
|
|
||||||
| ((!COMPACTMETA) ? LFS3_I_COMPACTMETA : 0)
|
| ((!COMPACTMETA) ? LFS3_I_COMPACTMETA : 0)
|
||||||
// note ckdata implies ckmeta
|
// note ckdata implies ckmeta
|
||||||
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
|
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
|
||||||
| ((!CKDATA) ? LFS3_I_CKDATA : 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
|
// check we can still read the files
|
||||||
lfs3_file_open(&lfs3, &file, "cuttlefish", LFS3_O_RDONLY) => 0;
|
lfs3_file_open(&lfs3, &file, "cuttlefish", LFS3_O_RDONLY) => 0;
|
||||||
@@ -524,7 +532,10 @@ code = '''
|
|||||||
assert(i < 2*BLOCK_COUNT);
|
assert(i < 2*BLOCK_COUNT);
|
||||||
|
|
||||||
lfs3_t lfs3;
|
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_mount(&lfs3, LFS3_M_RDWR, CFG) => 0;
|
||||||
|
|
||||||
// create an interesting filesystem
|
// create an interesting filesystem
|
||||||
@@ -613,7 +624,10 @@ code = '''
|
|||||||
assert(i < 2*BLOCK_COUNT);
|
assert(i < 2*BLOCK_COUNT);
|
||||||
|
|
||||||
lfs3_t lfs3;
|
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_mount(&lfs3, LFS3_M_RDWR, CFG) => 0;
|
||||||
|
|
||||||
// create an interesting filesystem
|
// create an interesting filesystem
|
||||||
@@ -696,7 +710,10 @@ in = 'lfs3.c'
|
|||||||
code = '''
|
code = '''
|
||||||
// create a superblock
|
// create a superblock
|
||||||
lfs3_t lfs3;
|
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
|
// delete the magic string
|
||||||
//
|
//
|
||||||
@@ -719,7 +736,10 @@ in = 'lfs3.c'
|
|||||||
code = '''
|
code = '''
|
||||||
// create a superblock
|
// create a superblock
|
||||||
lfs3_t lfs3;
|
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
|
// tweak the magic string
|
||||||
//
|
//
|
||||||
@@ -743,7 +763,10 @@ in = 'lfs3.c'
|
|||||||
code = '''
|
code = '''
|
||||||
// create a superblock
|
// create a superblock
|
||||||
lfs3_t lfs3;
|
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
|
// bump the major version
|
||||||
//
|
//
|
||||||
@@ -769,7 +792,10 @@ in = 'lfs3.c'
|
|||||||
code = '''
|
code = '''
|
||||||
// create a superblock
|
// create a superblock
|
||||||
lfs3_t lfs3;
|
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
|
// bump the minor version
|
||||||
//
|
//
|
||||||
@@ -795,7 +821,10 @@ in = 'lfs3.c'
|
|||||||
code = '''
|
code = '''
|
||||||
// create a superblock
|
// create a superblock
|
||||||
lfs3_t lfs3;
|
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
|
// set the nonstandard rcompat flag, this will always be incompatible
|
||||||
// with standard littlefs
|
// with standard littlefs
|
||||||
@@ -822,7 +851,10 @@ in = 'lfs3.c'
|
|||||||
code = '''
|
code = '''
|
||||||
// create a superblock
|
// create a superblock
|
||||||
lfs3_t lfs3;
|
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
|
// set the nonstandard rcompat flag, this will always be incompatible
|
||||||
// with standard littlefs
|
// with standard littlefs
|
||||||
@@ -852,7 +884,10 @@ in = 'lfs3.c'
|
|||||||
code = '''
|
code = '''
|
||||||
// create a superblock
|
// create a superblock
|
||||||
lfs3_t lfs3;
|
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
|
// set the nonstandard ocompat flag, this will always be incompatible
|
||||||
// with standard littlefs
|
// with standard littlefs
|
||||||
@@ -881,7 +916,10 @@ in = 'lfs3.c'
|
|||||||
code = '''
|
code = '''
|
||||||
// create a superblock
|
// create a superblock
|
||||||
lfs3_t lfs3;
|
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
|
// set the rdonly flag, this prevents writing from a littlefs image
|
||||||
//
|
//
|
||||||
@@ -910,7 +948,10 @@ in = 'lfs3.c'
|
|||||||
code = '''
|
code = '''
|
||||||
// create a superblock
|
// create a superblock
|
||||||
lfs3_t lfs3;
|
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
|
// set the wronly flag, this prevents reading from a littlefs image
|
||||||
//
|
//
|
||||||
@@ -938,7 +979,10 @@ in = 'lfs3.c'
|
|||||||
code = '''
|
code = '''
|
||||||
// create a superblock
|
// create a superblock
|
||||||
lfs3_t lfs3;
|
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
|
// set a really far rcompat flag
|
||||||
//
|
//
|
||||||
@@ -969,7 +1013,10 @@ in = 'lfs3.c'
|
|||||||
code = '''
|
code = '''
|
||||||
// create a superblock
|
// create a superblock
|
||||||
lfs3_t lfs3;
|
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};
|
uint8_t flags[9] = {0};
|
||||||
flags[FLAG / 8] |= 1 << (FLAG % 8);
|
flags[FLAG / 8] |= 1 << (FLAG % 8);
|
||||||
@@ -1006,7 +1053,10 @@ in = 'lfs3.c'
|
|||||||
code = '''
|
code = '''
|
||||||
// create a superblock
|
// create a superblock
|
||||||
lfs3_t lfs3;
|
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
|
// set a really far ocompat flag
|
||||||
//
|
//
|
||||||
@@ -1038,7 +1088,10 @@ in = 'lfs3.c'
|
|||||||
code = '''
|
code = '''
|
||||||
// create a superblock
|
// create a superblock
|
||||||
lfs3_t lfs3;
|
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
|
// set a really far rcompat flag
|
||||||
//
|
//
|
||||||
@@ -1069,7 +1122,10 @@ in = 'lfs3.c'
|
|||||||
code = '''
|
code = '''
|
||||||
// create a superblock
|
// create a superblock
|
||||||
lfs3_t lfs3;
|
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};
|
uint8_t flags[9] = {0};
|
||||||
flags[FLAG / 8] |= 1 << (FLAG % 8);
|
flags[FLAG / 8] |= 1 << (FLAG % 8);
|
||||||
@@ -1103,7 +1159,10 @@ in = 'lfs3.c'
|
|||||||
code = '''
|
code = '''
|
||||||
// create a superblock
|
// create a superblock
|
||||||
lfs3_t lfs3;
|
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
|
// set a really far ocompat flag
|
||||||
//
|
//
|
||||||
@@ -1134,7 +1193,10 @@ in = 'lfs3.c'
|
|||||||
code = '''
|
code = '''
|
||||||
// create a superblock
|
// create a superblock
|
||||||
lfs3_t lfs3;
|
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
|
// set an incompatible block size
|
||||||
//
|
//
|
||||||
@@ -1161,7 +1223,10 @@ in = 'lfs3.c'
|
|||||||
code = '''
|
code = '''
|
||||||
// create a superblock
|
// create a superblock
|
||||||
lfs3_t lfs3;
|
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
|
// set an incompatible block count
|
||||||
//
|
//
|
||||||
@@ -1188,7 +1253,10 @@ in = 'lfs3.c'
|
|||||||
code = '''
|
code = '''
|
||||||
// create a superblock
|
// create a superblock
|
||||||
lfs3_t lfs3;
|
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
|
// set an incompatible block size
|
||||||
//
|
//
|
||||||
@@ -1212,7 +1280,10 @@ in = 'lfs3.c'
|
|||||||
code = '''
|
code = '''
|
||||||
// create a superblock
|
// create a superblock
|
||||||
lfs3_t lfs3;
|
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
|
// set an incompatible file limit
|
||||||
//
|
//
|
||||||
@@ -1249,7 +1320,10 @@ in = 'lfs3.c'
|
|||||||
code = '''
|
code = '''
|
||||||
// create a superblock
|
// create a superblock
|
||||||
lfs3_t lfs3;
|
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
|
// create an unknown config
|
||||||
lfs3_mount(&lfs3, LFS3_M_RDWR, CFG) => 0;
|
lfs3_mount(&lfs3, LFS3_M_RDWR, CFG) => 0;
|
||||||
@@ -1271,7 +1345,10 @@ in = 'lfs3.c'
|
|||||||
code = '''
|
code = '''
|
||||||
// create a superblock
|
// create a superblock
|
||||||
lfs3_t lfs3;
|
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
|
// create some files
|
||||||
lfs3_mount(&lfs3, LFS3_M_RDWR, CFG) => 0;
|
lfs3_mount(&lfs3, LFS3_M_RDWR, CFG) => 0;
|
||||||
@@ -1359,7 +1436,10 @@ in = 'lfs3.c'
|
|||||||
code = '''
|
code = '''
|
||||||
// create a superblock
|
// create a superblock
|
||||||
lfs3_t lfs3;
|
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
|
// create some files
|
||||||
lfs3_mount(&lfs3, LFS3_M_RDWR, CFG) => 0;
|
lfs3_mount(&lfs3, LFS3_M_RDWR, CFG) => 0;
|
||||||
@@ -1466,7 +1546,10 @@ in = 'lfs3.c'
|
|||||||
code = '''
|
code = '''
|
||||||
// create a superblock
|
// create a superblock
|
||||||
lfs3_t lfs3;
|
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
|
// create some files
|
||||||
lfs3_mount(&lfs3, LFS3_M_RDWR, CFG) => 0;
|
lfs3_mount(&lfs3, LFS3_M_RDWR, CFG) => 0;
|
||||||
@@ -1576,7 +1659,10 @@ in = 'lfs3.c'
|
|||||||
code = '''
|
code = '''
|
||||||
// create a superblock
|
// create a superblock
|
||||||
lfs3_t lfs3;
|
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
|
// create some files
|
||||||
lfs3_mount(&lfs3, LFS3_M_RDWR, CFG) => 0;
|
lfs3_mount(&lfs3, LFS3_M_RDWR, CFG) => 0;
|
||||||
@@ -1686,7 +1772,10 @@ in = 'lfs3.c'
|
|||||||
code = '''
|
code = '''
|
||||||
// create a superblock
|
// create a superblock
|
||||||
lfs3_t lfs3;
|
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
|
// create some files
|
||||||
lfs3_mount(&lfs3, LFS3_M_RDWR, CFG) => 0;
|
lfs3_mount(&lfs3, LFS3_M_RDWR, CFG) => 0;
|
||||||
@@ -1805,7 +1894,10 @@ in = 'lfs3.c'
|
|||||||
code = '''
|
code = '''
|
||||||
// create a superblock
|
// create a superblock
|
||||||
lfs3_t lfs3;
|
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
|
// create some files
|
||||||
lfs3_mount(&lfs3, LFS3_M_RDWR, CFG) => 0;
|
lfs3_mount(&lfs3, LFS3_M_RDWR, CFG) => 0;
|
||||||
@@ -1919,7 +2011,10 @@ in = 'lfs3.c'
|
|||||||
code = '''
|
code = '''
|
||||||
// create a superblock
|
// create a superblock
|
||||||
lfs3_t lfs3;
|
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
|
// create some files
|
||||||
lfs3_mount(&lfs3, LFS3_M_RDWR, CFG) => 0;
|
lfs3_mount(&lfs3, LFS3_M_RDWR, CFG) => 0;
|
||||||
@@ -2029,7 +2124,10 @@ in = 'lfs3.c'
|
|||||||
code = '''
|
code = '''
|
||||||
// create a superblock
|
// create a superblock
|
||||||
lfs3_t lfs3;
|
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
|
// create some files
|
||||||
lfs3_mount(&lfs3, LFS3_M_RDWR, CFG) => 0;
|
lfs3_mount(&lfs3, LFS3_M_RDWR, CFG) => 0;
|
||||||
@@ -2150,7 +2248,10 @@ in = 'lfs3.c'
|
|||||||
code = '''
|
code = '''
|
||||||
// create a superblock
|
// create a superblock
|
||||||
lfs3_t lfs3;
|
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
|
// with some files
|
||||||
lfs3_mount(&lfs3, LFS3_M_RDWR, CFG) => 0;
|
lfs3_mount(&lfs3, LFS3_M_RDWR, CFG) => 0;
|
||||||
|
|||||||
+46
-158
@@ -20,11 +20,9 @@ if = '''
|
|||||||
[cases.test_trvs_simple]
|
[cases.test_trvs_simple]
|
||||||
defines.MKCONSISTENT = [false, true]
|
defines.MKCONSISTENT = [false, true]
|
||||||
defines.LOOKAHEAD = [false, true]
|
defines.LOOKAHEAD = [false, true]
|
||||||
defines.LOOKGBMAP = [false, true]
|
|
||||||
defines.COMPACTMETA = [false, true]
|
defines.COMPACTMETA = [false, true]
|
||||||
defines.CKMETA = [false, true]
|
defines.CKMETA = [false, true]
|
||||||
defines.CKDATA = [false, true]
|
defines.CKDATA = [false, true]
|
||||||
if = 'GBMAP || !LOOKGBMAP'
|
|
||||||
code = '''
|
code = '''
|
||||||
lfs3_t lfs3;
|
lfs3_t lfs3;
|
||||||
lfs3_format(&lfs3,
|
lfs3_format(&lfs3,
|
||||||
@@ -39,9 +37,6 @@ code = '''
|
|||||||
LFS3_T_RDWR
|
LFS3_T_RDWR
|
||||||
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
|
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
|
||||||
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
|
||||||
| ((LOOKGBMAP)
|
|
||||||
? LFS3_IFDEF_GBMAP(LFS3_T_LOOKGBMAP, -1)
|
|
||||||
: 0)
|
|
||||||
| ((COMPACTMETA) ? LFS3_T_COMPACTMETA : 0)
|
| ((COMPACTMETA) ? LFS3_T_COMPACTMETA : 0)
|
||||||
| ((CKMETA) ? LFS3_T_CKMETA : 0)
|
| ((CKMETA) ? LFS3_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS3_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS3_T_CKDATA : 0)) => 0;
|
||||||
@@ -85,9 +80,6 @@ code = '''
|
|||||||
LFS3_T_RDWR
|
LFS3_T_RDWR
|
||||||
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
|
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
|
||||||
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
|
||||||
| ((LOOKGBMAP)
|
|
||||||
? LFS3_IFDEF_GBMAP(LFS3_T_LOOKGBMAP, -1)
|
|
||||||
: 0)
|
|
||||||
| ((COMPACTMETA) ? LFS3_T_COMPACTMETA : 0)
|
| ((COMPACTMETA) ? LFS3_T_COMPACTMETA : 0)
|
||||||
| ((CKMETA) ? LFS3_T_CKMETA : 0)
|
| ((CKMETA) ? LFS3_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS3_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS3_T_CKDATA : 0)) => 0;
|
||||||
@@ -129,11 +121,9 @@ code = '''
|
|||||||
[cases.test_trvs_idempotent]
|
[cases.test_trvs_idempotent]
|
||||||
defines.MKCONSISTENT = [false, true]
|
defines.MKCONSISTENT = [false, true]
|
||||||
defines.LOOKAHEAD = [false, true]
|
defines.LOOKAHEAD = [false, true]
|
||||||
defines.LOOKGBMAP = [false, true]
|
|
||||||
defines.COMPACTMETA = [false, true]
|
defines.COMPACTMETA = [false, true]
|
||||||
defines.CKMETA = [false, true]
|
defines.CKMETA = [false, true]
|
||||||
defines.CKDATA = [false, true]
|
defines.CKDATA = [false, true]
|
||||||
if = 'GBMAP || !LOOKGBMAP'
|
|
||||||
code = '''
|
code = '''
|
||||||
lfs3_t lfs3;
|
lfs3_t lfs3;
|
||||||
lfs3_format(&lfs3,
|
lfs3_format(&lfs3,
|
||||||
@@ -148,9 +138,6 @@ code = '''
|
|||||||
LFS3_T_RDWR
|
LFS3_T_RDWR
|
||||||
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
|
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
|
||||||
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
|
||||||
| ((LOOKGBMAP)
|
|
||||||
? LFS3_IFDEF_GBMAP(LFS3_T_LOOKGBMAP, -1)
|
|
||||||
: 0)
|
|
||||||
| ((COMPACTMETA) ? LFS3_T_COMPACTMETA : 0)
|
| ((COMPACTMETA) ? LFS3_T_COMPACTMETA : 0)
|
||||||
| ((CKMETA) ? LFS3_T_CKMETA : 0)
|
| ((CKMETA) ? LFS3_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS3_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS3_T_CKDATA : 0)) => 0;
|
||||||
@@ -1777,11 +1764,9 @@ done:;
|
|||||||
[cases.test_trvs_flags]
|
[cases.test_trvs_flags]
|
||||||
defines.MKCONSISTENT = [false, true]
|
defines.MKCONSISTENT = [false, true]
|
||||||
defines.LOOKAHEAD = [false, true]
|
defines.LOOKAHEAD = [false, true]
|
||||||
defines.LOOKGBMAP = [false, true]
|
|
||||||
defines.COMPACTMETA = [false, true]
|
defines.COMPACTMETA = [false, true]
|
||||||
defines.CKMETA = [false, true]
|
defines.CKMETA = [false, true]
|
||||||
defines.CKDATA = [false, true]
|
defines.CKDATA = [false, true]
|
||||||
if = 'GBMAP || !LOOKGBMAP'
|
|
||||||
code = '''
|
code = '''
|
||||||
lfs3_t lfs3;
|
lfs3_t lfs3;
|
||||||
lfs3_format(&lfs3,
|
lfs3_format(&lfs3,
|
||||||
@@ -1797,7 +1782,7 @@ code = '''
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_MKCONSISTENT
|
| LFS3_I_MKCONSISTENT
|
||||||
| LFS3_I_LOOKAHEAD
|
| ((!GBMAP) ? LFS3_I_LOOKAHEAD : 0)
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -1809,9 +1794,6 @@ code = '''
|
|||||||
LFS3_T_RDWR
|
LFS3_T_RDWR
|
||||||
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
|
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
|
||||||
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
|
||||||
| ((LOOKGBMAP)
|
|
||||||
? LFS3_IFDEF_GBMAP(LFS3_T_LOOKGBMAP, -1)
|
|
||||||
: 0)
|
|
||||||
| ((COMPACTMETA) ? LFS3_T_COMPACTMETA : 0)
|
| ((COMPACTMETA) ? LFS3_T_COMPACTMETA : 0)
|
||||||
| ((CKMETA) ? LFS3_T_CKMETA : 0)
|
| ((CKMETA) ? LFS3_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS3_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS3_T_CKDATA : 0)) => 0;
|
||||||
@@ -1837,7 +1819,7 @@ code = '''
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| ((!MKCONSISTENT) ? LFS3_I_MKCONSISTENT : 0)
|
| ((!MKCONSISTENT) ? LFS3_I_MKCONSISTENT : 0)
|
||||||
| ((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
| ((!LOOKAHEAD && !GBMAP) ? LFS3_I_LOOKAHEAD : 0)
|
||||||
| ((!COMPACTMETA) ? LFS3_I_COMPACTMETA : 0)
|
| ((!COMPACTMETA) ? LFS3_I_COMPACTMETA : 0)
|
||||||
// note ckdata implies ckmeta
|
// note ckdata implies ckmeta
|
||||||
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
|
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
|
||||||
@@ -1937,7 +1919,7 @@ done:;
|
|||||||
assert(fsinfo.flags == (
|
assert(fsinfo.flags == (
|
||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| ((!GBMAP) ? LFS3_I_LOOKAHEAD : 0)
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -2012,7 +1994,7 @@ code = '''
|
|||||||
assert(fsinfo.flags == (
|
assert(fsinfo.flags == (
|
||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| ((!GBMAP) ? LFS3_I_LOOKAHEAD : 0)
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -2045,7 +2027,7 @@ code = '''
|
|||||||
assert(fsinfo.flags == (
|
assert(fsinfo.flags == (
|
||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| ((!GBMAP) ? LFS3_I_LOOKAHEAD : 0)
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -2136,7 +2118,7 @@ done:;
|
|||||||
assert(fsinfo.flags == (
|
assert(fsinfo.flags == (
|
||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| ((!GBMAP) ? LFS3_I_LOOKAHEAD : 0)
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -2231,7 +2213,7 @@ done:;
|
|||||||
assert(fsinfo.flags == (
|
assert(fsinfo.flags == (
|
||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| ((!GBMAP) ? LFS3_I_LOOKAHEAD : 0)
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -2334,7 +2316,7 @@ done:;
|
|||||||
assert(fsinfo.flags == (
|
assert(fsinfo.flags == (
|
||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| ((!GBMAP) ? LFS3_I_LOOKAHEAD : 0)
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -2418,9 +2400,8 @@ code = '''
|
|||||||
assert(fsinfo.flags == (
|
assert(fsinfo.flags == (
|
||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| ((!GBMAP || SIZE >= BLOCK_SIZE/4)
|
||||||
| ((GBMAP && SIZE >= BLOCK_SIZE/4)
|
? LFS3_I_LOOKAHEAD
|
||||||
? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1)
|
|
||||||
: 0)
|
: 0)
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
@@ -2518,17 +2499,18 @@ code = '''
|
|||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
// ok we might've updated lookahead if write stayed in
|
// ok we might've updated lookahead if write stayed in
|
||||||
// cache
|
// cache
|
||||||
| ((!LOOKAHEAD || SIZE > FCACHE_SIZE || SYNC)
|
| (((!LOOKAHEAD || SIZE > FCACHE_SIZE || SYNC)
|
||||||
? LFS3_I_LOOKAHEAD : 0)
|
&& (!GBMAP || SIZE >= BLOCK_SIZE/4))
|
||||||
| ((GBMAP && SIZE >= BLOCK_SIZE/4)
|
? LFS3_I_LOOKAHEAD
|
||||||
? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1)
|
|
||||||
: 0)
|
: 0)
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
// and maybe ckmeta/ckdata, note ckdata implies ckmeta
|
// and maybe ckmeta/ckdata, note ckdata implies ckmeta
|
||||||
| (((!CKMETA && !CKDATA) || SIZE > FCACHE_SIZE || SYNC)
|
| (((!CKMETA && !CKDATA) || SIZE > FCACHE_SIZE || SYNC)
|
||||||
? LFS3_I_CKMETA : 0)
|
? LFS3_I_CKMETA
|
||||||
|
: 0)
|
||||||
| ((!CKDATA || SIZE > FCACHE_SIZE || SYNC)
|
| ((!CKDATA || SIZE > FCACHE_SIZE || SYNC)
|
||||||
? LFS3_I_CKDATA : 0)
|
? LFS3_I_CKDATA
|
||||||
|
: 0)
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_GBMAP, -1) : 0)));
|
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_GBMAP, -1) : 0)));
|
||||||
|
|
||||||
// check the file contents
|
// check the file contents
|
||||||
@@ -2640,7 +2622,7 @@ done:;
|
|||||||
assert(fsinfo.flags == (
|
assert(fsinfo.flags == (
|
||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| ((!GBMAP) ? LFS3_I_LOOKAHEAD : 0)
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -2773,7 +2755,6 @@ done:;
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| LFS3_I_LOOKAHEAD
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -2896,7 +2877,6 @@ done:;
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| LFS3_I_LOOKAHEAD
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -3003,7 +2983,7 @@ done:;
|
|||||||
assert(fsinfo.flags == (
|
assert(fsinfo.flags == (
|
||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| ((!GBMAP) ? LFS3_I_LOOKAHEAD : 0)
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -3138,7 +3118,6 @@ done:;
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| LFS3_I_LOOKAHEAD
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -3263,7 +3242,6 @@ done:;
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| LFS3_I_LOOKAHEAD
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -3383,7 +3361,7 @@ done:;
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| ((DESYNC) ? LFS3_I_MKCONSISTENT : 0)
|
| ((DESYNC) ? LFS3_I_MKCONSISTENT : 0)
|
||||||
| ((!(LOOKAHEAD && DESYNC)) ? LFS3_I_LOOKAHEAD : 0)
|
| ((!(LOOKAHEAD && DESYNC) && !GBMAP) ? LFS3_I_LOOKAHEAD : 0)
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
// note ckdata implies ckmeta
|
// note ckdata implies ckmeta
|
||||||
| ((!(CKMETA && DESYNC) && !(CKDATA && DESYNC))
|
| ((!(CKMETA && DESYNC) && !(CKDATA && DESYNC))
|
||||||
@@ -3529,7 +3507,6 @@ done:;
|
|||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| ((DESYNC) ? LFS3_I_MKCONSISTENT : 0)
|
| ((DESYNC) ? LFS3_I_MKCONSISTENT : 0)
|
||||||
| ((!(LOOKAHEAD && DESYNC)) ? LFS3_I_LOOKAHEAD : 0)
|
| ((!(LOOKAHEAD && DESYNC)) ? LFS3_I_LOOKAHEAD : 0)
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
// note ckdata implies ckmeta
|
// note ckdata implies ckmeta
|
||||||
| ((!(CKMETA && DESYNC) && !(CKDATA && DESYNC))
|
| ((!(CKMETA && DESYNC) && !(CKDATA && DESYNC))
|
||||||
@@ -3665,7 +3642,6 @@ done:;
|
|||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| ((DESYNC) ? LFS3_I_MKCONSISTENT : 0)
|
| ((DESYNC) ? LFS3_I_MKCONSISTENT : 0)
|
||||||
| ((!(LOOKAHEAD && DESYNC)) ? LFS3_I_LOOKAHEAD : 0)
|
| ((!(LOOKAHEAD && DESYNC)) ? LFS3_I_LOOKAHEAD : 0)
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
// note ckdata implies ckmeta
|
// note ckdata implies ckmeta
|
||||||
| ((!(CKMETA && DESYNC) && !(CKDATA && DESYNC))
|
| ((!(CKMETA && DESYNC) && !(CKDATA && DESYNC))
|
||||||
@@ -3787,7 +3763,6 @@ done:;
|
|||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| ((DESYNC) ? LFS3_I_MKCONSISTENT : 0)
|
| ((DESYNC) ? LFS3_I_MKCONSISTENT : 0)
|
||||||
| ((!(LOOKAHEAD && DESYNC)) ? LFS3_I_LOOKAHEAD : 0)
|
| ((!(LOOKAHEAD && DESYNC)) ? LFS3_I_LOOKAHEAD : 0)
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
// note ckdata implies ckmeta
|
// note ckdata implies ckmeta
|
||||||
| ((!(CKMETA && DESYNC) && !(CKDATA && DESYNC))
|
| ((!(CKMETA && DESYNC) && !(CKDATA && DESYNC))
|
||||||
@@ -3911,7 +3886,6 @@ done:;
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| LFS3_I_LOOKAHEAD
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -4037,7 +4011,6 @@ done:;
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| LFS3_I_LOOKAHEAD
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -4166,7 +4139,6 @@ done:;
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| LFS3_I_LOOKAHEAD
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -4308,7 +4280,6 @@ done:;
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| LFS3_I_LOOKAHEAD
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -4450,7 +4421,6 @@ done:;
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| LFS3_I_LOOKAHEAD
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -4572,7 +4542,6 @@ done:;
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| LFS3_I_LOOKAHEAD
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -4695,7 +4664,6 @@ done:;
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| LFS3_I_LOOKAHEAD
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -4831,7 +4799,6 @@ done:;
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| LFS3_I_LOOKAHEAD
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -4968,7 +4935,6 @@ done:;
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| LFS3_I_LOOKAHEAD
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -5159,7 +5125,6 @@ done:;
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| LFS3_I_LOOKAHEAD
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -5366,7 +5331,6 @@ done:;
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| LFS3_I_LOOKAHEAD
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -5568,7 +5532,6 @@ done:;
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| LFS3_I_LOOKAHEAD
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -5767,7 +5730,6 @@ done:;
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| LFS3_I_LOOKAHEAD
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -5972,7 +5934,6 @@ done:;
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| LFS3_I_LOOKAHEAD
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -6182,7 +6143,6 @@ done:;
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| LFS3_I_LOOKAHEAD
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -6397,7 +6357,6 @@ done:;
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| LFS3_I_LOOKAHEAD
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -6470,7 +6429,7 @@ code = '''
|
|||||||
assert(fsinfo.flags == (
|
assert(fsinfo.flags == (
|
||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| ((!GBMAP) ? LFS3_I_LOOKAHEAD : 0)
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -6508,7 +6467,7 @@ code = '''
|
|||||||
assert(fsinfo.flags == (
|
assert(fsinfo.flags == (
|
||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| ((!GBMAP) ? LFS3_I_LOOKAHEAD : 0)
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -6533,7 +6492,7 @@ code = '''
|
|||||||
assert(fsinfo.flags == (
|
assert(fsinfo.flags == (
|
||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| ((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
| ((!LOOKAHEAD && !GBMAP) ? LFS3_I_LOOKAHEAD : 0)
|
||||||
// note ckdata implies ckmeta
|
// note ckdata implies ckmeta
|
||||||
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
|
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
|
||||||
| ((!CKDATA) ? LFS3_I_CKDATA : 0)
|
| ((!CKDATA) ? LFS3_I_CKDATA : 0)
|
||||||
@@ -6620,7 +6579,6 @@ code = '''
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| LFS3_I_LOOKAHEAD
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -6667,7 +6625,6 @@ code = '''
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| LFS3_I_LOOKAHEAD
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -6695,7 +6652,6 @@ code = '''
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| ((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
| ((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
// note ckdata implies ckmeta
|
// note ckdata implies ckmeta
|
||||||
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
|
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
|
||||||
| ((!CKDATA) ? LFS3_I_CKDATA : 0)
|
| ((!CKDATA) ? LFS3_I_CKDATA : 0)
|
||||||
@@ -6763,7 +6719,7 @@ code = '''
|
|||||||
assert(fsinfo.flags == (
|
assert(fsinfo.flags == (
|
||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| ((!GBMAP) ? LFS3_I_LOOKAHEAD : 0)
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -6804,7 +6760,6 @@ code = '''
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| LFS3_I_LOOKAHEAD
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -6830,7 +6785,6 @@ code = '''
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| ((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
| ((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
// note ckdata implies ckmeta
|
// note ckdata implies ckmeta
|
||||||
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
|
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
|
||||||
| ((!CKDATA) ? LFS3_I_CKDATA : 0)
|
| ((!CKDATA) ? LFS3_I_CKDATA : 0)
|
||||||
@@ -6925,7 +6879,7 @@ code = '''
|
|||||||
assert(fsinfo.flags == (
|
assert(fsinfo.flags == (
|
||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| ((!GBMAP) ? LFS3_I_LOOKAHEAD : 0)
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -6978,7 +6932,6 @@ code = '''
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| LFS3_I_LOOKAHEAD
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -7005,7 +6958,6 @@ code = '''
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| ((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
| ((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
// note ckdata implies ckmeta
|
// note ckdata implies ckmeta
|
||||||
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
|
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
|
||||||
| ((!CKDATA) ? LFS3_I_CKDATA : 0)
|
| ((!CKDATA) ? LFS3_I_CKDATA : 0)
|
||||||
@@ -7155,7 +7107,6 @@ code = '''
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| LFS3_I_LOOKAHEAD
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -7215,7 +7166,6 @@ code = '''
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| LFS3_I_LOOKAHEAD
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -7244,7 +7194,6 @@ code = '''
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| ((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
| ((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
// note ckdata implies ckmeta
|
// note ckdata implies ckmeta
|
||||||
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
|
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
|
||||||
| ((!CKDATA) ? LFS3_I_CKDATA : 0)
|
| ((!CKDATA) ? LFS3_I_CKDATA : 0)
|
||||||
@@ -7399,7 +7348,6 @@ code = '''
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| LFS3_I_LOOKAHEAD
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -7464,7 +7412,6 @@ code = '''
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| LFS3_I_LOOKAHEAD
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -7493,7 +7440,6 @@ code = '''
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| ((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
| ((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
// note ckdata implies ckmeta
|
// note ckdata implies ckmeta
|
||||||
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
|
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
|
||||||
| ((!CKDATA) ? LFS3_I_CKDATA : 0)
|
| ((!CKDATA) ? LFS3_I_CKDATA : 0)
|
||||||
@@ -7613,10 +7559,7 @@ code = '''
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| ((ORPHANS > 0) ? LFS3_I_MKCONSISTENT : 0)
|
| ((ORPHANS > 0) ? LFS3_I_MKCONSISTENT : 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| ((!GBMAP || ORPHANS >= 100) ? LFS3_I_LOOKAHEAD : 0)
|
||||||
| ((GBMAP && ORPHANS >= 100)
|
|
||||||
? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1)
|
|
||||||
: 0)
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -7683,9 +7626,9 @@ code = '''
|
|||||||
assert(fsinfo.flags == (
|
assert(fsinfo.flags == (
|
||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| ((!LOOKAHEAD || ORPHANS > 0) ? LFS3_I_LOOKAHEAD : 0)
|
| (((!LOOKAHEAD || ORPHANS > 0)
|
||||||
| ((GBMAP && ORPHANS >= 100)
|
&& (!GBMAP || ORPHANS >= 100))
|
||||||
? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1)
|
? LFS3_I_LOOKAHEAD
|
||||||
: 0)
|
: 0)
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
// note ckdata implies ckmeta
|
// note ckdata implies ckmeta
|
||||||
@@ -7765,7 +7708,7 @@ code = '''
|
|||||||
assert(fsinfo.flags == (
|
assert(fsinfo.flags == (
|
||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| ((!GBMAP) ? LFS3_I_LOOKAHEAD : 0)
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -7854,9 +7797,9 @@ code = '''
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| ((ORPHANS >= 3) ? LFS3_I_MKCONSISTENT : 0)
|
| ((ORPHANS >= 3) ? LFS3_I_MKCONSISTENT : 0)
|
||||||
| ((!LOOKAHEAD || ORPHANS > 0) ? LFS3_I_LOOKAHEAD : 0)
|
| (((!LOOKAHEAD || ORPHANS > 0)
|
||||||
| ((GBMAP && ORPHANS >= 100)
|
&& (!GBMAP || ORPHANS >= 100))
|
||||||
? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1)
|
? LFS3_I_LOOKAHEAD
|
||||||
: 0)
|
: 0)
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
// note ckdata implies ckmeta
|
// note ckdata implies ckmeta
|
||||||
@@ -7963,7 +7906,6 @@ code = '''
|
|||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| ((ORPHANS > 0) ? LFS3_I_MKCONSISTENT : 0)
|
| ((ORPHANS > 0) ? LFS3_I_MKCONSISTENT : 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| LFS3_I_LOOKAHEAD
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -8044,7 +7986,6 @@ code = '''
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| ((!LOOKAHEAD || ORPHANS > 0) ? LFS3_I_LOOKAHEAD : 0)
|
| ((!LOOKAHEAD || ORPHANS > 0) ? LFS3_I_LOOKAHEAD : 0)
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
// note ckdata implies ckmeta
|
// note ckdata implies ckmeta
|
||||||
| (((!CKMETA && !CKDATA) || ORPHANS > 0) ? LFS3_I_CKMETA : 0)
|
| (((!CKMETA && !CKDATA) || ORPHANS > 0) ? LFS3_I_CKMETA : 0)
|
||||||
@@ -8150,7 +8091,6 @@ code = '''
|
|||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| ((ORPHANS > 0) ? LFS3_I_MKCONSISTENT : 0)
|
| ((ORPHANS > 0) ? LFS3_I_MKCONSISTENT : 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| LFS3_I_LOOKAHEAD
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -8231,7 +8171,6 @@ code = '''
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| ((!LOOKAHEAD || ORPHANS > 0) ? LFS3_I_LOOKAHEAD : 0)
|
| ((!LOOKAHEAD || ORPHANS > 0) ? LFS3_I_LOOKAHEAD : 0)
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
// note ckdata implies ckmeta
|
// note ckdata implies ckmeta
|
||||||
| (((!CKMETA && !CKDATA) || ORPHANS > 0) ? LFS3_I_CKMETA : 0)
|
| (((!CKMETA && !CKDATA) || ORPHANS > 0) ? LFS3_I_CKMETA : 0)
|
||||||
@@ -8338,7 +8277,6 @@ code = '''
|
|||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| ((ORPHANS > 0) ? LFS3_I_MKCONSISTENT : 0)
|
| ((ORPHANS > 0) ? LFS3_I_MKCONSISTENT : 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| LFS3_I_LOOKAHEAD
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -8427,7 +8365,6 @@ code = '''
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| ((!LOOKAHEAD || ORPHANS > 0) ? LFS3_I_LOOKAHEAD : 0)
|
| ((!LOOKAHEAD || ORPHANS > 0) ? LFS3_I_LOOKAHEAD : 0)
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
// note ckdata implies ckmeta
|
// note ckdata implies ckmeta
|
||||||
| (((!CKMETA && !CKDATA) || ORPHANS > 0) ? LFS3_I_CKMETA : 0)
|
| (((!CKMETA && !CKDATA) || ORPHANS > 0) ? LFS3_I_CKMETA : 0)
|
||||||
@@ -8534,7 +8471,6 @@ code = '''
|
|||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| ((ORPHANS > 0) ? LFS3_I_MKCONSISTENT : 0)
|
| ((ORPHANS > 0) ? LFS3_I_MKCONSISTENT : 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| LFS3_I_LOOKAHEAD
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -8623,7 +8559,6 @@ code = '''
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| ((!LOOKAHEAD || ORPHANS > 0) ? LFS3_I_LOOKAHEAD : 0)
|
| ((!LOOKAHEAD || ORPHANS > 0) ? LFS3_I_LOOKAHEAD : 0)
|
||||||
| ((GBMAP) ? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1) : 0)
|
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
// note ckdata implies ckmeta
|
// note ckdata implies ckmeta
|
||||||
| (((!CKMETA && !CKDATA) || ORPHANS > 0) ? LFS3_I_CKMETA : 0)
|
| (((!CKMETA && !CKDATA) || ORPHANS > 0) ? LFS3_I_CKMETA : 0)
|
||||||
@@ -8747,9 +8682,8 @@ code = '''
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| ((ORPHANS > 0) ? LFS3_I_MKCONSISTENT : 0)
|
| ((ORPHANS > 0) ? LFS3_I_MKCONSISTENT : 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| ((!GBMAP || ORPHANS >= 100)
|
||||||
| ((GBMAP && ORPHANS >= 100)
|
? LFS3_I_LOOKAHEAD
|
||||||
? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1)
|
|
||||||
: 0)
|
: 0)
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
@@ -8822,9 +8756,8 @@ code = '''
|
|||||||
assert(fsinfo.flags == (
|
assert(fsinfo.flags == (
|
||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| ((!GBMAP || ORPHANS >= 100)
|
||||||
| ((GBMAP && ORPHANS >= 100)
|
? LFS3_I_LOOKAHEAD
|
||||||
? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1)
|
|
||||||
: 0)
|
: 0)
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
@@ -8851,9 +8784,8 @@ code = '''
|
|||||||
assert(fsinfo.flags == (
|
assert(fsinfo.flags == (
|
||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| ((!LOOKAHEAD) ? LFS3_I_LOOKAHEAD : 0)
|
| ((!LOOKAHEAD && (!GBMAP || ORPHANS >= 100))
|
||||||
| ((GBMAP && ORPHANS >= 100)
|
? LFS3_I_LOOKAHEAD
|
||||||
? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1)
|
|
||||||
: 0)
|
: 0)
|
||||||
// note ckdata implies ckmeta
|
// note ckdata implies ckmeta
|
||||||
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
|
| ((!CKMETA && !CKDATA) ? LFS3_I_CKMETA : 0)
|
||||||
@@ -8955,7 +8887,7 @@ code = '''
|
|||||||
assert(fsinfo.flags == (
|
assert(fsinfo.flags == (
|
||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| ((!GBMAP) ? LFS3_I_LOOKAHEAD : 0)
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
| LFS3_I_CKDATA
|
| LFS3_I_CKDATA
|
||||||
@@ -9049,9 +8981,8 @@ code = '''
|
|||||||
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
LFS3_IFDEF_YES_REVDBG(LFS3_I_REVDBG, 0)
|
||||||
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
| LFS3_IFDEF_YES_REVNOISE(LFS3_I_REVNOISE, 0)
|
||||||
| ((ORPHANS >= 3) ? LFS3_I_MKCONSISTENT : 0)
|
| ((ORPHANS >= 3) ? LFS3_I_MKCONSISTENT : 0)
|
||||||
| LFS3_I_LOOKAHEAD
|
| ((!GBMAP || ORPHANS >= 100)
|
||||||
| ((GBMAP && ORPHANS >= 100)
|
? LFS3_I_LOOKAHEAD
|
||||||
? LFS3_IFDEF_GBMAP(LFS3_I_LOOKGBMAP, -1)
|
|
||||||
: 0)
|
: 0)
|
||||||
| LFS3_I_COMPACTMETA
|
| LFS3_I_COMPACTMETA
|
||||||
| LFS3_I_CKMETA
|
| LFS3_I_CKMETA
|
||||||
@@ -9100,14 +9031,12 @@ code = '''
|
|||||||
defines.STEPS = [1, 2, 4, 8, 16, 32, 64, 128]
|
defines.STEPS = [1, 2, 4, 8, 16, 32, 64, 128]
|
||||||
defines.MKCONSISTENT = [false, true]
|
defines.MKCONSISTENT = [false, true]
|
||||||
defines.LOOKAHEAD = [false, true]
|
defines.LOOKAHEAD = [false, true]
|
||||||
defines.LOOKGBMAP = [false, true]
|
|
||||||
defines.COMPACTMETA = [false, true]
|
defines.COMPACTMETA = [false, true]
|
||||||
defines.CKMETA = [true]
|
defines.CKMETA = [true]
|
||||||
defines.CKDATA = [true]
|
defines.CKDATA = [true]
|
||||||
# set compactmeta thresh to minimum
|
# set compactmeta thresh to minimum
|
||||||
defines.GC_COMPACTMETA_THRESH = 'BLOCK_SIZE/2'
|
defines.GC_COMPACTMETA_THRESH = 'BLOCK_SIZE/2'
|
||||||
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256]
|
defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256]
|
||||||
if = 'GBMAP || !LOOKGBMAP'
|
|
||||||
code = '''
|
code = '''
|
||||||
// test creating directories
|
// test creating directories
|
||||||
lfs3_t lfs3;
|
lfs3_t lfs3;
|
||||||
@@ -9123,9 +9052,6 @@ code = '''
|
|||||||
LFS3_T_RDWR
|
LFS3_T_RDWR
|
||||||
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
|
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
|
||||||
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
|
||||||
| ((LOOKGBMAP)
|
|
||||||
? LFS3_IFDEF_GBMAP(LFS3_T_LOOKGBMAP, -1)
|
|
||||||
: 0)
|
|
||||||
| ((COMPACTMETA) ? LFS3_T_COMPACTMETA : 0)
|
| ((COMPACTMETA) ? LFS3_T_COMPACTMETA : 0)
|
||||||
| ((CKMETA) ? LFS3_T_CKMETA : 0)
|
| ((CKMETA) ? LFS3_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS3_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS3_T_CKDATA : 0)) => 0;
|
||||||
@@ -9219,7 +9145,6 @@ code = '''
|
|||||||
defines.STEPS = [1, 2, 4, 8, 16, 32, 64, 128]
|
defines.STEPS = [1, 2, 4, 8, 16, 32, 64, 128]
|
||||||
defines.MKCONSISTENT = [false, true]
|
defines.MKCONSISTENT = [false, true]
|
||||||
defines.LOOKAHEAD = [false, true]
|
defines.LOOKAHEAD = [false, true]
|
||||||
defines.LOOKGBMAP = [false, true]
|
|
||||||
defines.COMPACTMETA = [false, true]
|
defines.COMPACTMETA = [false, true]
|
||||||
defines.CKMETA = [true]
|
defines.CKMETA = [true]
|
||||||
defines.CKDATA = [true]
|
defines.CKDATA = [true]
|
||||||
@@ -9229,7 +9154,6 @@ defines.N = [1, 2, 4, 8, 16, 32, 64, 128, 256]
|
|||||||
defines.OPS = '2*N'
|
defines.OPS = '2*N'
|
||||||
defines.SEED = 42
|
defines.SEED = 42
|
||||||
fuzz = 'SEED'
|
fuzz = 'SEED'
|
||||||
if = 'GBMAP || !LOOKGBMAP'
|
|
||||||
code = '''
|
code = '''
|
||||||
// test fuzz with dirs
|
// test fuzz with dirs
|
||||||
lfs3_t lfs3;
|
lfs3_t lfs3;
|
||||||
@@ -9249,9 +9173,6 @@ code = '''
|
|||||||
LFS3_T_RDWR
|
LFS3_T_RDWR
|
||||||
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
|
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
|
||||||
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
|
||||||
| ((LOOKGBMAP)
|
|
||||||
? LFS3_IFDEF_GBMAP(LFS3_T_LOOKGBMAP, -1)
|
|
||||||
: 0)
|
|
||||||
| ((COMPACTMETA) ? LFS3_T_COMPACTMETA : 0)
|
| ((COMPACTMETA) ? LFS3_T_COMPACTMETA : 0)
|
||||||
| ((CKMETA) ? LFS3_T_CKMETA : 0)
|
| ((CKMETA) ? LFS3_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS3_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS3_T_CKDATA : 0)) => 0;
|
||||||
@@ -9409,7 +9330,6 @@ code = '''
|
|||||||
defines.STEPS = [1, 2, 4, 8, 16, 32, 64, 128]
|
defines.STEPS = [1, 2, 4, 8, 16, 32, 64, 128]
|
||||||
defines.MKCONSISTENT = [false, true]
|
defines.MKCONSISTENT = [false, true]
|
||||||
defines.LOOKAHEAD = [false, true]
|
defines.LOOKAHEAD = [false, true]
|
||||||
defines.LOOKGBMAP = [false, true]
|
|
||||||
defines.COMPACTMETA = [false, true]
|
defines.COMPACTMETA = [false, true]
|
||||||
defines.CKMETA = [true]
|
defines.CKMETA = [true]
|
||||||
defines.CKDATA = [true]
|
defines.CKDATA = [true]
|
||||||
@@ -9425,10 +9345,7 @@ defines.SIZE = [
|
|||||||
'2*BLOCK_SIZE',
|
'2*BLOCK_SIZE',
|
||||||
'4*BLOCK_SIZE',
|
'4*BLOCK_SIZE',
|
||||||
]
|
]
|
||||||
if = [
|
if = '(SIZE*N)/BLOCK_SIZE <= 32'
|
||||||
'(SIZE*N)/BLOCK_SIZE <= 32',
|
|
||||||
'GBMAP || !LOOKGBMAP',
|
|
||||||
]
|
|
||||||
code = '''
|
code = '''
|
||||||
// test creating files
|
// test creating files
|
||||||
lfs3_t lfs3;
|
lfs3_t lfs3;
|
||||||
@@ -9444,9 +9361,6 @@ code = '''
|
|||||||
LFS3_T_RDWR
|
LFS3_T_RDWR
|
||||||
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
|
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
|
||||||
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
|
||||||
| ((LOOKGBMAP)
|
|
||||||
? LFS3_IFDEF_GBMAP(LFS3_T_LOOKGBMAP, -1)
|
|
||||||
: 0)
|
|
||||||
| ((COMPACTMETA) ? LFS3_T_COMPACTMETA : 0)
|
| ((COMPACTMETA) ? LFS3_T_COMPACTMETA : 0)
|
||||||
| ((CKMETA) ? LFS3_T_CKMETA : 0)
|
| ((CKMETA) ? LFS3_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS3_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS3_T_CKDATA : 0)) => 0;
|
||||||
@@ -9524,7 +9438,6 @@ code = '''
|
|||||||
defines.STEPS = [1, 2, 4, 8, 16, 32, 64, 128]
|
defines.STEPS = [1, 2, 4, 8, 16, 32, 64, 128]
|
||||||
defines.MKCONSISTENT = [false, true]
|
defines.MKCONSISTENT = [false, true]
|
||||||
defines.LOOKAHEAD = [false, true]
|
defines.LOOKAHEAD = [false, true]
|
||||||
defines.LOOKGBMAP = [false, true]
|
|
||||||
defines.COMPACTMETA = [false, true]
|
defines.COMPACTMETA = [false, true]
|
||||||
defines.CKMETA = [true]
|
defines.CKMETA = [true]
|
||||||
defines.CKDATA = [true]
|
defines.CKDATA = [true]
|
||||||
@@ -9543,10 +9456,7 @@ defines.SIZE = [
|
|||||||
]
|
]
|
||||||
defines.SEED = 42
|
defines.SEED = 42
|
||||||
fuzz = 'SEED'
|
fuzz = 'SEED'
|
||||||
if = [
|
if = '(SIZE*N)/BLOCK_SIZE <= 16'
|
||||||
'(SIZE*N)/BLOCK_SIZE <= 16',
|
|
||||||
'GBMAP || !LOOKGBMAP',
|
|
||||||
]
|
|
||||||
code = '''
|
code = '''
|
||||||
// test fuzz with files
|
// test fuzz with files
|
||||||
lfs3_t lfs3;
|
lfs3_t lfs3;
|
||||||
@@ -9567,9 +9477,6 @@ code = '''
|
|||||||
LFS3_T_RDWR
|
LFS3_T_RDWR
|
||||||
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
|
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
|
||||||
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
|
||||||
| ((LOOKGBMAP)
|
|
||||||
? LFS3_IFDEF_GBMAP(LFS3_T_LOOKGBMAP, -1)
|
|
||||||
: 0)
|
|
||||||
| ((COMPACTMETA) ? LFS3_T_COMPACTMETA : 0)
|
| ((COMPACTMETA) ? LFS3_T_COMPACTMETA : 0)
|
||||||
| ((CKMETA) ? LFS3_T_CKMETA : 0)
|
| ((CKMETA) ? LFS3_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS3_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS3_T_CKDATA : 0)) => 0;
|
||||||
@@ -9778,7 +9685,6 @@ code = '''
|
|||||||
defines.STEPS = [1, 2, 4, 8, 16, 32, 64, 128]
|
defines.STEPS = [1, 2, 4, 8, 16, 32, 64, 128]
|
||||||
defines.MKCONSISTENT = [false, true]
|
defines.MKCONSISTENT = [false, true]
|
||||||
defines.LOOKAHEAD = [false, true]
|
defines.LOOKAHEAD = [false, true]
|
||||||
defines.LOOKGBMAP = [false, true]
|
|
||||||
defines.COMPACTMETA = [false, true]
|
defines.COMPACTMETA = [false, true]
|
||||||
defines.CKMETA = [true]
|
defines.CKMETA = [true]
|
||||||
defines.CKDATA = [true]
|
defines.CKDATA = [true]
|
||||||
@@ -9806,7 +9712,6 @@ if = [
|
|||||||
'CHUNK <= SIZE',
|
'CHUNK <= SIZE',
|
||||||
# this just saves testing time
|
# this just saves testing time
|
||||||
'SIZE <= 4*1024*FRAGMENT_SIZE',
|
'SIZE <= 4*1024*FRAGMENT_SIZE',
|
||||||
'GBMAP || !LOOKGBMAP',
|
|
||||||
]
|
]
|
||||||
code = '''
|
code = '''
|
||||||
// test with complex file writes
|
// test with complex file writes
|
||||||
@@ -9851,9 +9756,6 @@ code = '''
|
|||||||
LFS3_T_RDWR
|
LFS3_T_RDWR
|
||||||
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
|
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
|
||||||
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
|
||||||
| ((LOOKGBMAP)
|
|
||||||
? LFS3_IFDEF_GBMAP(LFS3_T_LOOKGBMAP, -1)
|
|
||||||
: 0)
|
|
||||||
| ((COMPACTMETA) ? LFS3_T_COMPACTMETA : 0)
|
| ((COMPACTMETA) ? LFS3_T_COMPACTMETA : 0)
|
||||||
| ((CKMETA) ? LFS3_T_CKMETA : 0)
|
| ((CKMETA) ? LFS3_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS3_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS3_T_CKDATA : 0)) => 0;
|
||||||
@@ -9950,7 +9852,6 @@ code = '''
|
|||||||
defines.STEPS = [1, 2, 4, 8, 16, 32, 64, 128]
|
defines.STEPS = [1, 2, 4, 8, 16, 32, 64, 128]
|
||||||
defines.MKCONSISTENT = [false, true]
|
defines.MKCONSISTENT = [false, true]
|
||||||
defines.LOOKAHEAD = [false, true]
|
defines.LOOKAHEAD = [false, true]
|
||||||
defines.LOOKGBMAP = [false, true]
|
|
||||||
defines.COMPACTMETA = [false, true]
|
defines.COMPACTMETA = [false, true]
|
||||||
defines.CKMETA = [true]
|
defines.CKMETA = [true]
|
||||||
defines.CKDATA = [true]
|
defines.CKDATA = [true]
|
||||||
@@ -9971,10 +9872,7 @@ defines.SIZE = [
|
|||||||
]
|
]
|
||||||
defines.SEED = 42
|
defines.SEED = 42
|
||||||
fuzz = 'SEED'
|
fuzz = 'SEED'
|
||||||
if = [
|
if = '(SIZE*N)/BLOCK_SIZE <= 16'
|
||||||
'(SIZE*N)/BLOCK_SIZE <= 16',
|
|
||||||
'GBMAP || !LOOKGBMAP',
|
|
||||||
]
|
|
||||||
code = '''
|
code = '''
|
||||||
// test with uncreats, zombies, etc
|
// test with uncreats, zombies, etc
|
||||||
lfs3_t lfs3;
|
lfs3_t lfs3;
|
||||||
@@ -10006,9 +9904,6 @@ code = '''
|
|||||||
LFS3_T_RDWR
|
LFS3_T_RDWR
|
||||||
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
|
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
|
||||||
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
|
||||||
| ((LOOKGBMAP)
|
|
||||||
? LFS3_IFDEF_GBMAP(LFS3_T_LOOKGBMAP, -1)
|
|
||||||
: 0)
|
|
||||||
| ((COMPACTMETA) ? LFS3_T_COMPACTMETA : 0)
|
| ((COMPACTMETA) ? LFS3_T_COMPACTMETA : 0)
|
||||||
| ((CKMETA) ? LFS3_T_CKMETA : 0)
|
| ((CKMETA) ? LFS3_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS3_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS3_T_CKDATA : 0)) => 0;
|
||||||
@@ -10415,7 +10310,6 @@ code = '''
|
|||||||
defines.STEPS = [1, 2, 4, 8, 16, 32, 64, 128]
|
defines.STEPS = [1, 2, 4, 8, 16, 32, 64, 128]
|
||||||
defines.MKCONSISTENT = [false, true]
|
defines.MKCONSISTENT = [false, true]
|
||||||
defines.LOOKAHEAD = [false, true]
|
defines.LOOKAHEAD = [false, true]
|
||||||
defines.LOOKGBMAP = [false, true]
|
|
||||||
defines.COMPACTMETA = [false, true]
|
defines.COMPACTMETA = [false, true]
|
||||||
defines.CKMETA = [true]
|
defines.CKMETA = [true]
|
||||||
defines.CKDATA = [true]
|
defines.CKDATA = [true]
|
||||||
@@ -10436,10 +10330,7 @@ defines.SIZE = [
|
|||||||
]
|
]
|
||||||
defines.SEED = 42
|
defines.SEED = 42
|
||||||
fuzz = 'SEED'
|
fuzz = 'SEED'
|
||||||
if = [
|
if = '(SIZE*N)/BLOCK_SIZE <= 16'
|
||||||
'(SIZE*N)/BLOCK_SIZE <= 16',
|
|
||||||
'GBMAP || !LOOKGBMAP',
|
|
||||||
]
|
|
||||||
code = '''
|
code = '''
|
||||||
// test with uncreats, zombies, dirs, etc
|
// test with uncreats, zombies, dirs, etc
|
||||||
lfs3_t lfs3;
|
lfs3_t lfs3;
|
||||||
@@ -10472,9 +10363,6 @@ code = '''
|
|||||||
LFS3_T_RDWR
|
LFS3_T_RDWR
|
||||||
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
|
| ((MKCONSISTENT) ? LFS3_T_MKCONSISTENT : 0)
|
||||||
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
|
| ((LOOKAHEAD) ? LFS3_T_LOOKAHEAD : 0)
|
||||||
| ((LOOKGBMAP)
|
|
||||||
? LFS3_IFDEF_GBMAP(LFS3_T_LOOKGBMAP, -1)
|
|
||||||
: 0)
|
|
||||||
| ((COMPACTMETA) ? LFS3_T_COMPACTMETA : 0)
|
| ((COMPACTMETA) ? LFS3_T_COMPACTMETA : 0)
|
||||||
| ((CKMETA) ? LFS3_T_CKMETA : 0)
|
| ((CKMETA) ? LFS3_T_CKMETA : 0)
|
||||||
| ((CKDATA) ? LFS3_T_CKDATA : 0)) => 0;
|
| ((CKDATA) ? LFS3_T_CKDATA : 0)) => 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user