From 89356fc697699a83fa0c5fbbd3dd09fbaa302840 Mon Sep 17 00:00:00 2001 From: Christopher Haster Date: Thu, 17 Apr 2025 00:37:41 -0500 Subject: [PATCH] Renamed a couple mbit related things - mdir_bits -> mbits - lfsr_mid_bid -> lfsr_mbid - lfsr_mid_rid -> lfsr_mrid These now match the naming in the dbg scripts. I feel like this is more terse in a way that is also more readable, but maybe that's just me. --- lfs.c | 155 +++++++++++---------- lfs.h | 2 +- tests/test_forphans.toml | 8 +- tests/test_mtree.toml | 282 +++++++++++++++++++------------------- tests/test_traversal.toml | 12 +- 5 files changed, 229 insertions(+), 230 deletions(-) diff --git a/lfs.c b/lfs.c index 253946e8..edd445b3 100644 --- a/lfs.c +++ b/lfs.c @@ -6677,16 +6677,16 @@ static int lfsr_bshrub_commit(lfs_t *lfs, lfsr_bshrub_t *bshrub, /// metadata-id things /// #define LFSR_MID(_lfs, _bid, _rid) \ - (((_bid) & ~((1 << (_lfs)->mdir_bits)-1)) + (_rid)) + (((_bid) & ~((1 << (_lfs)->mbits)-1)) + (_rid)) -static inline lfsr_sbid_t lfsr_mid_bid(const lfs_t *lfs, lfsr_smid_t mid) { - return mid | ((1 << lfs->mdir_bits) - 1); +static inline lfsr_sbid_t lfsr_mbid(const lfs_t *lfs, lfsr_smid_t mid) { + return mid | ((1 << lfs->mbits) - 1); } -static inline lfsr_srid_t lfsr_mid_rid(const lfs_t *lfs, lfsr_smid_t mid) { +static inline lfsr_srid_t lfsr_mrid(const lfs_t *lfs, lfsr_smid_t mid) { // bit of a strange mapping, but we want to preserve mid=-1 => rid=-1 return (mid >> (8*sizeof(lfsr_smid_t)-1)) - | (mid & ((1 << lfs->mdir_bits) - 1)); + | (mid & ((1 << lfs->mbits) - 1)); } @@ -7296,7 +7296,7 @@ static int lfsr_mdir_fetch(lfs_t *lfs, lfsr_mdir_t *mdir, LFS_DEBUG("Fetched mdir %"PRId32" " "0x{%"PRIx32",%"PRIx32"}.%"PRIx32" w%"PRId32", " "cksum %"PRIx32, - mdir->mid >> lfs->mdir_bits, + mdir->mid >> lfs->mbits, mdir->rbyd.blocks[0], mdir->rbyd.blocks[1], lfsr_rbyd_trunk(&mdir->rbyd), mdir->rbyd.weight, @@ -7332,7 +7332,7 @@ static int lfsr_mdir_lookupnext(lfs_t *lfs, const lfsr_mdir_t *mdir, lfsr_srid_t rid__; lfsr_tag_t tag__; int err = lfsr_rbyd_lookupnext(lfs, &mdir->rbyd, - lfsr_mid_rid(lfs, mdir->mid), tag, + lfsr_mrid(lfs, mdir->mid), tag, &rid__, &tag__, NULL, data_); if (err) { return err; @@ -7340,7 +7340,7 @@ static int lfsr_mdir_lookupnext(lfs_t *lfs, const lfsr_mdir_t *mdir, // this is very similar to lfsr_rbyd_lookupnext, but we error if // lookupnext would change mids - if (rid__ != lfsr_mid_rid(lfs, mdir->mid)) { + if (rid__ != lfsr_mrid(lfs, mdir->mid)) { return LFS_ERR_NOENT; } @@ -7428,7 +7428,7 @@ static int lfsr_mdir_suplookup(lfs_t *lfs, const lfsr_mdir_t *mdir, static inline lfsr_mid_t lfsr_mtree_weight(lfs_t *lfs) { return lfs_max( lfs->mtree.weight, - 1 << lfs->mdir_bits); + 1 << lfs->mbits); } static int lfsr_mtree_lookup(lfs_t *lfs, lfsr_smid_t mid, @@ -7458,7 +7458,7 @@ static int lfsr_mtree_lookup(lfs_t *lfs, lfsr_smid_t mid, LFS_ASSERT(err != LFS_ERR_NOENT); return err; } - LFS_ASSERT((lfsr_sbid_t)bid == lfsr_mid_bid(lfs, mid)); + LFS_ASSERT((lfsr_sbid_t)bid == lfsr_mbid(lfs, mid)); LFS_ASSERT(tag == LFSR_TAG_MDIR); // fetch mdir @@ -7588,7 +7588,7 @@ static int lfsr_mdir_commit__(lfs_t *lfs, lfsr_mdir_t *mdir, lfsr_smid_t mid, const lfsr_rattr_t *rattrs, lfs_size_t rattr_count) { // since we only ever commit to one mid or split, we can ignore the // entire rattr-list if our mid is out of range - lfsr_srid_t rid = lfsr_mid_rid(lfs, mid); + lfsr_srid_t rid = lfsr_mrid(lfs, mid); if (rid >= start_rid // note the use of rid+1 and unsigned comparison here to // treat end_rid=-1 as "unbounded" in such a way that rid=-1 @@ -7919,7 +7919,7 @@ static lfs_ssize_t lfsr_mdir_estimate__(lfs_t *lfs, const lfsr_mdir_t *mdir, if (lfsr_o_isbshrub(o->flags) // belongs to our mdir + rid? && lfsr_mdir_cmp(&o->mdir, mdir) == 0 - && lfsr_mid_rid(lfs, o->mdir.mid) == a_rid + && lfsr_mrid(lfs, o->mdir.mid) == a_rid // is a bshrub? && lfsr_bshrub_isbshrub((lfsr_bshrub_t*)o)) { lfs_ssize_t dsize__ = lfsr_shrub_estimate(lfs, @@ -8038,8 +8038,8 @@ static int lfsr_mdir_compact__(lfs_t *lfs, lfsr_mdir_t *mdir_, if (lfsr_o_isbshrub(o->flags) // belongs to our mdir? && lfsr_mdir_cmp(&o->mdir, mdir) == 0 - && lfsr_mid_rid(lfs, o->mdir.mid) >= start_rid - && (lfsr_rid_t)lfsr_mid_rid(lfs, o->mdir.mid) + && lfsr_mrid(lfs, o->mdir.mid) >= start_rid + && (lfsr_rid_t)lfsr_mrid(lfs, o->mdir.mid) < (lfsr_rid_t)end_rid // is a bshrub? && lfsr_bshrub_isbshrub((lfsr_bshrub_t*)o) @@ -8124,7 +8124,7 @@ relocate:; // without relocating if (err == LFS_ERR_NOSPC) { LFS_WARN("Overcompacting mdir %"PRId32" 0x{%"PRIx32",%"PRIx32"}", - mdir->mid >> lfs->mdir_bits, + mdir->mid >> lfs->mbits, mdir->rbyd.blocks[0], mdir->rbyd.blocks[1]); overcompacted = true; @@ -8145,7 +8145,7 @@ compact:; #ifdef LFS_DEBUGMDIRCOMMITS LFS_DEBUG("Compacting mdir %"PRId32" 0x{%"PRIx32",%"PRIx32"} " "-> 0x{%"PRIx32",%"PRIx32"}", - mdir->mid >> lfs->mdir_bits, + mdir->mid >> lfs->mbits, mdir->rbyd.blocks[0], mdir->rbyd.blocks[1], mdir_.rbyd.blocks[0], mdir_.rbyd.blocks[1]); #endif @@ -8246,7 +8246,7 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir, || lfsr_mdir_cmp(mdir, &lfs->mroot) == 0 || mdir->rbyd.weight > 0); // rid in-bounds? - LFS_ASSERT(lfsr_mid_rid(lfs, mdir->mid) + LFS_ASSERT(lfsr_mrid(lfs, mdir->mid) <= (lfsr_srid_t)mdir->rbyd.weight); // lfs->mroot must have mid=-1 LFS_ASSERT(lfs->mroot.mid == -1); @@ -8262,8 +8262,7 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir, // adjust pending grms? } else { for (int j = 0; j < 2; j++) { - if (lfsr_mid_bid(lfs, lfs->grm.mids[j]) - == lfsr_mid_bid(lfs, mid_) + if (lfsr_mbid(lfs, lfs->grm.mids[j]) == lfsr_mbid(lfs, mid_) && lfs->grm.mids[j] >= mid_) { // deleting a pending grm doesn't really make sense LFS_ASSERT(lfs->grm.mids[j] >= mid_ - rattrs[i].weight); @@ -8351,7 +8350,7 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir, // order the split compacts so that that mdir containing our mid // is committed last, this is a bit of a hack but necessary so // shrubs are staged correctly - bool l = lfsr_mid_rid(lfs, mdir->mid) < split_rid; + bool l = lfsr_mrid(lfs, mdir->mid) < split_rid; bool relocated = false;; split_relocate:; @@ -8395,11 +8394,11 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir, } // adjust our sibling's mid after committing rattrs - mdir_[1].mid += (1 << lfs->mdir_bits); + mdir_[1].mid += (1 << lfs->mbits); LFS_INFO("Splitting mdir %"PRId32" 0x{%"PRIx32",%"PRIx32"} " "-> 0x{%"PRIx32",%"PRIx32"}, 0x{%"PRIx32",%"PRIx32"}", - mdir->mid >> lfs->mdir_bits, + mdir->mid >> lfs->mbits, mdir->rbyd.blocks[0], mdir->rbyd.blocks[1], mdir_[0].rbyd.blocks[0], mdir_[0].rbyd.blocks[1], mdir_[1].rbyd.blocks[0], mdir_[1].rbyd.blocks[1]); @@ -8410,17 +8409,17 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir, // both siblings reduced to zero if (mdir_[0].rbyd.weight == 0 && mdir_[1].rbyd.weight == 0) { LFS_INFO("Dropping mdir %"PRId32" 0x{%"PRIx32",%"PRIx32"}", - mdir_[0].mid >> lfs->mdir_bits, + mdir_[0].mid >> lfs->mbits, mdir_[0].rbyd.blocks[0], mdir_[0].rbyd.blocks[1]); LFS_INFO("Dropping mdir %"PRId32" 0x{%"PRIx32",%"PRIx32"}", - mdir_[1].mid >> lfs->mdir_bits, + mdir_[1].mid >> lfs->mbits, mdir_[1].rbyd.blocks[0], mdir_[1].rbyd.blocks[1]); goto dropped; // one sibling reduced to zero } else if (mdir_[0].rbyd.weight == 0) { LFS_INFO("Dropping mdir %"PRId32" 0x{%"PRIx32",%"PRIx32"}", - mdir_[0].mid >> lfs->mdir_bits, + mdir_[0].mid >> lfs->mbits, mdir_[0].rbyd.blocks[0], mdir_[0].rbyd.blocks[1]); lfsr_mdir_sync(&mdir_[0], &mdir_[1]); goto relocated; @@ -8428,13 +8427,13 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir, // other sibling reduced to zero } else if (mdir_[1].rbyd.weight == 0) { LFS_INFO("Dropping mdir %"PRId32" 0x{%"PRIx32",%"PRIx32"}", - mdir_[1].mid >> lfs->mdir_bits, + mdir_[1].mid >> lfs->mbits, mdir_[1].rbyd.blocks[0], mdir_[1].rbyd.blocks[1]); goto relocated; } // no siblings reduced to zero, update our mtree - mdelta = +(1 << lfs->mdir_bits); + mdelta = +(1 << lfs->mbits); // lookup first name in sibling to use as the split name // @@ -8455,10 +8454,10 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir, err = lfsr_btree_commit(lfs, &mtree_, 0, LFSR_RATTRS( LFSR_RATTR_MPTR( - LFSR_TAG_MDIR, +(1 << lfs->mdir_bits), + LFSR_TAG_MDIR, +(1 << lfs->mbits), mdir_[0].rbyd.blocks), LFSR_RATTR_DATA( - LFSR_TAG_NAME, +(1 << lfs->mdir_bits), + LFSR_TAG_NAME, +(1 << lfs->mbits), &split_name), LFSR_RATTR_MPTR( LFSR_TAG_MDIR, 0, @@ -8473,12 +8472,12 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir, lfs->mtree.eoff = -1; err = lfsr_btree_commit(lfs, &mtree_, - lfsr_mid_bid(lfs, mdir->mid), LFSR_RATTRS( + lfsr_mbid(lfs, mdir->mid), LFSR_RATTRS( LFSR_RATTR_MPTR( LFSR_TAG_MDIR, 0, mdir_[0].rbyd.blocks), LFSR_RATTR_DATA( - LFSR_TAG_NAME, +(1 << lfs->mdir_bits), + LFSR_TAG_NAME, +(1 << lfs->mbits), &split_name), LFSR_RATTR_MPTR( LFSR_TAG_MDIR, 0, @@ -8491,7 +8490,7 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir, // need to drop? } else if (err == LFS_ERR_NOENT) { LFS_INFO("Dropping mdir %"PRId32" 0x{%"PRIx32",%"PRIx32"}", - mdir->mid >> lfs->mdir_bits, + mdir->mid >> lfs->mbits, mdir->rbyd.blocks[0], mdir->rbyd.blocks[1]); // set weight to zero mdir_[0].rbyd.weight = 0; @@ -8503,7 +8502,7 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir, } dropped:; - mdelta = -(1 << lfs->mdir_bits); + mdelta = -(1 << lfs->mbits); // how can we drop if we have no mtree? LFS_ASSERT(lfs->mtree.weight != 0); @@ -8513,9 +8512,9 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir, // update our mtree err = lfsr_btree_commit(lfs, &mtree_, - lfsr_mid_bid(lfs, mdir->mid), LFSR_RATTRS( + lfsr_mbid(lfs, mdir->mid), LFSR_RATTRS( LFSR_RATTR( - LFSR_TAG_RM, -(1 << lfs->mdir_bits)))); + LFSR_TAG_RM, -(1 << lfs->mbits)))); if (err) { goto failed; } @@ -8525,7 +8524,7 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir, && lfsr_mdir_cmp(mdir, &lfs->mroot) != 0) { LFS_INFO("Relocating mdir %"PRId32" 0x{%"PRIx32",%"PRIx32"} " "-> 0x{%"PRIx32",%"PRIx32"}", - mdir->mid >> lfs->mdir_bits, + mdir->mid >> lfs->mbits, mdir->rbyd.blocks[0], mdir->rbyd.blocks[1], mdir_[0].rbyd.blocks[0], mdir_[0].rbyd.blocks[1]); @@ -8537,7 +8536,7 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir, err = lfsr_btree_commit(lfs, &mtree_, 0, LFSR_RATTRS( LFSR_RATTR_MPTR( - LFSR_TAG_MDIR, +(1 << lfs->mdir_bits), + LFSR_TAG_MDIR, +(1 << lfs->mbits), mdir_[0].rbyd.blocks))); if (err) { goto failed; @@ -8549,7 +8548,7 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir, lfs->mtree.eoff = -1; err = lfsr_btree_commit(lfs, &mtree_, - lfsr_mid_bid(lfs, mdir->mid), LFSR_RATTRS( + lfsr_mbid(lfs, mdir->mid), LFSR_RATTRS( LFSR_RATTR_MPTR( LFSR_TAG_MDIR, 0, mdir_[0].rbyd.blocks))); @@ -8561,13 +8560,13 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir, // patch any pending grms for (int j = 0; j < 2; j++) { - if (lfsr_mid_bid(lfs, lfs->grm.mids[j]) - == lfsr_mid_bid(lfs, lfs_smax(mdir->mid, 0))) { + if (lfsr_mbid(lfs, lfs->grm.mids[j]) + == lfsr_mbid(lfs, lfs_smax(mdir->mid, 0))) { if (mdelta > 0 - && lfsr_mid_rid(lfs, lfs->grm.mids[j]) + && lfsr_mrid(lfs, lfs->grm.mids[j]) >= (lfsr_srid_t)mdir_[0].rbyd.weight) { lfs->grm.mids[j] - += (1 << lfs->mdir_bits) - mdir_[0].rbyd.weight; + += (1 << lfs->mbits) - mdir_[0].rbyd.weight; } } else if (lfs->grm.mids[j] > mdir->mid) { lfs->grm.mids[j] += mdelta; @@ -8778,9 +8777,9 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir, // update any splits/drops if (lfsr_mdir_cmp(&o->mdir, mdir) == 0) { if (mdelta > 0 - && lfsr_mid_rid(lfs, o->mdir.mid) + && lfsr_mrid(lfs, o->mdir.mid) >= (lfsr_srid_t)mdir_[0].rbyd.weight) { - o->mdir.mid += (1 << lfs->mdir_bits) - mdir_[0].rbyd.weight; + o->mdir.mid += (1 << lfs->mbits) - mdir_[0].rbyd.weight; lfsr_mdir_sync(&o->mdir, &mdir_[1]); } else { lfsr_mdir_sync(&o->mdir, &mdir_[0]); @@ -8795,9 +8794,9 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir, && mdir->mid == -1) { lfsr_mdir_sync(mdir, &mroot_); } else if (mdelta > 0 - && lfsr_mid_rid(lfs, mdir->mid) + && lfsr_mrid(lfs, mdir->mid) >= (lfsr_srid_t)mdir_[0].rbyd.weight) { - mdir->mid += (1 << lfs->mdir_bits) - mdir_[0].rbyd.weight; + mdir->mid += (1 << lfs->mbits) - mdir_[0].rbyd.weight; lfsr_mdir_sync(mdir, &mdir_[1]); } else { lfsr_mdir_sync(mdir, &mdir_[0]); @@ -8828,7 +8827,7 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir, LFS_DEBUG("Committed mdir %"PRId32" " "0x{%"PRIx32",%"PRIx32"}.%"PRIx32" w%"PRId32", " "cksum %"PRIx32, - mdir->mid >> lfs->mdir_bits, + mdir->mid >> lfs->mbits, mdir->rbyd.blocks[0], mdir->rbyd.blocks[1], lfsr_rbyd_trunk(&mdir->rbyd), mdir->rbyd.weight, @@ -8933,7 +8932,7 @@ static int lfsr_mtree_namelookup(lfs_t *lfs, return cmp; } LFS_ASSERT(tag == LFSR_TAG_MDIR); - LFS_ASSERT(weight == (1U << lfs->mdir_bits)); + LFS_ASSERT(weight == (1U << lfs->mbits)); // fetch mdir int err = lfsr_data_fetchmdir(lfs, &data, bid-(weight-1), @@ -9303,9 +9302,9 @@ static int lfsr_mtree_traverse_(lfs_t *lfs, lfsr_traversal_t *t, // not traversing all blocks? have we exceeded our mdir's weight? // return to mtree iteration if (lfsr_t_ismtreeonly(t->b.o.flags) - || lfsr_mid_rid(lfs, t->b.o.mdir.mid) + || lfsr_mrid(lfs, t->b.o.mdir.mid) >= (lfsr_srid_t)t->b.o.mdir.rbyd.weight) { - t->b.o.mdir.mid = lfsr_mid_bid(lfs, t->b.o.mdir.mid) + 1; + t->b.o.mdir.mid = lfsr_mbid(lfs, t->b.o.mdir.mid) + 1; t->b.o.flags = lfsr_t_settstate(t->b.o.flags, LFSR_TSTATE_MDIRS); continue; @@ -9507,7 +9506,7 @@ static int lfsr_mtree_traverse(lfs_t *lfs, lfsr_traversal_t *t, LFS_ERROR("Found mdir cksum mismatch %"PRId32" " "0x{%"PRIx32",%"PRIx32"}, " "cksum %08"PRIx32" (!= %08"PRIx32")", - mdir->mid >> lfs->mdir_bits, + mdir->mid >> lfs->mbits, mdir->rbyd.blocks[0], mdir->rbyd.blocks[1], mdir->rbyd.cksum, @@ -9650,7 +9649,7 @@ dropped:; lfsr_mdir_t *mdir = (lfsr_mdir_t*)bptr.data.u.buffer; LFS_INFO("Compacting mdir %"PRId32" 0x{%"PRIx32",%"PRIx32"} " "(%"PRId32" > %"PRId32")", - mdir->mid >> lfs->mdir_bits, + mdir->mid >> lfs->mbits, mdir->rbyd.blocks[0], mdir->rbyd.blocks[1], lfsr_rbyd_eoff(&mdir->rbyd), @@ -10001,7 +10000,7 @@ int lfsr_mkdir(lfs_t *lfs, const char *path) { // lfsr_did_t dmask = (1 << lfs_min( - lfs_nlog2(lfsr_mtree_weight(lfs) >> lfs->mdir_bits) + lfs_nlog2(lfsr_mtree_weight(lfs) >> lfs->mbits) + lfs_nlog2(lfs->cfg->block_size/32), 31) ) - 1; @@ -10106,10 +10105,10 @@ static int lfsr_grm_pushdid(lfs_t *lfs, lfsr_did_t did) { // check that the directory is empty bookmark_mdir.mid += 1; - if (lfsr_mid_rid(lfs, bookmark_mdir.mid) + if (lfsr_mrid(lfs, bookmark_mdir.mid) >= (lfsr_srid_t)bookmark_mdir.rbyd.weight) { err = lfsr_mtree_lookup(lfs, - lfsr_mid_bid(lfs, bookmark_mdir.mid-1) + 1, + lfsr_mbid(lfs, bookmark_mdir.mid-1) + 1, &bookmark_mdir); if (err) { if (err == LFS_ERR_NOENT) { @@ -10610,10 +10609,10 @@ int lfsr_dir_read(lfs_t *lfs, lfsr_dir_t *dir, struct lfs_info *info) { while (true) { // next mdir? - if (lfsr_mid_rid(lfs, dir->o.mdir.mid) + if (lfsr_mrid(lfs, dir->o.mdir.mid) >= (lfsr_srid_t)dir->o.mdir.rbyd.weight) { int err = lfsr_mtree_lookup(lfs, - lfsr_mid_bid(lfs, dir->o.mdir.mid-1) + 1, + lfsr_mbid(lfs, dir->o.mdir.mid-1) + 1, &dir->o.mdir); if (err) { return err; @@ -10682,10 +10681,10 @@ int lfsr_dir_seek(lfs_t *lfs, lfsr_dir_t *dir, lfs_soff_t off) { lfs_off_t off_ = off - 2; while (off_ > 0) { // next mdir? - if (lfsr_mid_rid(lfs, dir->o.mdir.mid) + if (lfsr_mrid(lfs, dir->o.mdir.mid) >= (lfsr_srid_t)dir->o.mdir.rbyd.weight) { int err = lfsr_mtree_lookup(lfs, - lfsr_mid_bid(lfs, dir->o.mdir.mid-1) + 1, + lfsr_mbid(lfs, dir->o.mdir.mid-1) + 1, &dir->o.mdir); if (err) { if (err == LFS_ERR_NOENT) { @@ -10698,7 +10697,7 @@ int lfsr_dir_seek(lfs_t *lfs, lfsr_dir_t *dir, lfs_soff_t off) { lfs_off_t d = lfs_min( off_, dir->o.mdir.rbyd.weight - - lfsr_mid_rid(lfs, dir->o.mdir.mid)); + - lfsr_mrid(lfs, dir->o.mdir.mid)); dir->o.mdir.mid += d; off_ -= d; } @@ -13193,7 +13192,7 @@ static int lfs_init(lfs_t *lfs, uint32_t flags, // metadata entries per block. But we intentionally don't leverage this // to maintain compatibility with a theoretical perfect implementation. // - lfs->mdir_bits = lfs_nlog2(lfs->cfg->block_size) - 3; + lfs->mbits = lfs_nlog2(lfs->cfg->block_size) - 3; // zero linked-list of opened mdirs lfs->omdirs = NULL; @@ -13734,14 +13733,14 @@ static int lfsr_mountinited(lfs_t *lfs) { // found pending grms? this should only happen if we lost power if (lfsr_grm_count(lfs) == 2) { LFS_INFO("Found pending grm %"PRId32".%"PRId32" %"PRId32".%"PRId32, - lfsr_mid_bid(lfs, lfs->grm.mids[0]) >> lfs->mdir_bits, - lfsr_mid_rid(lfs, lfs->grm.mids[0]), - lfsr_mid_bid(lfs, lfs->grm.mids[1]) >> lfs->mdir_bits, - lfsr_mid_rid(lfs, lfs->grm.mids[1])); + lfsr_mbid(lfs, lfs->grm.mids[0]) >> lfs->mbits, + lfsr_mrid(lfs, lfs->grm.mids[0]), + lfsr_mbid(lfs, lfs->grm.mids[1]) >> lfs->mbits, + lfsr_mrid(lfs, lfs->grm.mids[1])); } else if (lfsr_grm_count(lfs) == 1) { LFS_INFO("Found pending grm %"PRId32".%"PRId32, - lfsr_mid_bid(lfs, lfs->grm.mids[0]) >> lfs->mdir_bits, - lfsr_mid_rid(lfs, lfs->grm.mids[0])); + lfsr_mbid(lfs, lfs->grm.mids[0]) >> lfs->mbits, + lfsr_mrid(lfs, lfs->grm.mids[0])); } return 0; @@ -13827,8 +13826,8 @@ int lfsr_mount(lfs_t *lfs, uint32_t flags, lfs->mroot.rbyd.blocks[0], lfs->mroot.rbyd.blocks[1], lfsr_rbyd_trunk(&lfs->mroot.rbyd), - lfs->mtree.weight >> lfs->mdir_bits, - 1 << lfs->mdir_bits, + lfs->mtree.weight >> lfs->mbits, + 1 << lfs->mbits, lfs->gcksum); return 0; @@ -14075,14 +14074,14 @@ lfs_ssize_t lfsr_fs_size(lfs_t *lfs) { static int lfsr_fs_fixgrm(lfs_t *lfs) { if (lfsr_grm_count(lfs) == 2) { LFS_INFO("Fixing grm %"PRId32".%"PRId32" %"PRId32".%"PRId32, - lfsr_mid_bid(lfs, lfs->grm.mids[0]) >> lfs->mdir_bits, - lfsr_mid_rid(lfs, lfs->grm.mids[0]), - lfsr_mid_bid(lfs, lfs->grm.mids[1]) >> lfs->mdir_bits, - lfsr_mid_rid(lfs, lfs->grm.mids[1])); + lfsr_mbid(lfs, lfs->grm.mids[0]) >> lfs->mbits, + lfsr_mrid(lfs, lfs->grm.mids[0]), + lfsr_mbid(lfs, lfs->grm.mids[1]) >> lfs->mbits, + lfsr_mrid(lfs, lfs->grm.mids[1])); } else if (lfsr_grm_count(lfs) == 1) { LFS_INFO("Fixing grm %"PRId32".%"PRId32, - lfsr_mid_bid(lfs, lfs->grm.mids[0]) >> lfs->mdir_bits, - lfsr_mid_rid(lfs, lfs->grm.mids[0])); + lfsr_mbid(lfs, lfs->grm.mids[0]) >> lfs->mbits, + lfsr_mrid(lfs, lfs->grm.mids[0])); } while (lfsr_grm_count(lfs) > 0) { @@ -14126,7 +14125,7 @@ static int lfsr_mdir_mkconsistent(lfs_t *lfs, lfsr_mdir_t *mdir) { // iterate through mids looking for orphans mdir->mid = LFSR_MID(lfs, mdir->mid, 0); int err; - while (lfsr_mid_rid(lfs, mdir->mid) < (lfsr_srid_t)mdir->rbyd.weight) { + while (lfsr_mrid(lfs, mdir->mid) < (lfsr_srid_t)mdir->rbyd.weight) { // is this mid open? well we're not an orphan then, skip if (lfsr_omdir_ismidopen(lfs, mdir->mid, -1)) { mdir->mid += 1; @@ -14146,8 +14145,8 @@ static int lfsr_mdir_mkconsistent(lfs_t *lfs, lfsr_mdir_t *mdir) { // we found an orphaned stickynote, remove LFS_INFO("Fixing orphaned stickynote %"PRId32".%"PRId32, - lfsr_mid_bid(lfs, mdir->mid) >> lfs->mdir_bits, - lfsr_mid_rid(lfs, mdir->mid)); + lfsr_mbid(lfs, mdir->mid) >> lfs->mbits, + lfsr_mrid(lfs, mdir->mid)); lfs_alloc_ckpoint(lfs); err = lfsr_mdir_commit(lfs, mdir, LFSR_RATTRS( diff --git a/lfs.h b/lfs.h index 37a7dc9a..06973487 100644 --- a/lfs.h +++ b/lfs.h @@ -815,7 +815,7 @@ typedef struct lfs { int8_t recycle_bits; uint8_t rattr_estimate; - uint8_t mdir_bits; + uint8_t mbits; // linked-list of opened mdirs lfsr_omdir_t *omdirs; diff --git a/tests/test_forphans.toml b/tests/test_forphans.toml index 663b662f..9816f3ba 100644 --- a/tests/test_forphans.toml +++ b/tests/test_forphans.toml @@ -5323,7 +5323,7 @@ code = ''' // double check the actual disk state, it's easy for littlefs to // lie here assert(lfsr_mtree_weight(&lfs) - <= ((1+lfs_popc(BOOKENDS)) << lfs.mdir_bits)); + <= ((1+lfs_popc(BOOKENDS)) << lfs.mbits)); lfsr_mdir_t mdir; lfsr_mtree_lookup(&lfs, 0, &mdir) => 0; assert(mdir.rbyd.weight <= 1+lfs_popc(BOOKENDS)); @@ -5459,7 +5459,7 @@ code = ''' // double check the actual disk state, it's easy for littlefs to // lie here assert(lfsr_mtree_weight(&lfs) - <= ((1+lfs_popc(BOOKENDS)) << lfs.mdir_bits)); + <= ((1+lfs_popc(BOOKENDS)) << lfs.mbits)); lfsr_mdir_t mdir; lfsr_mtree_lookup(&lfs, 0, &mdir) => 0; assert(mdir.rbyd.weight <= 1+lfs_popc(BOOKENDS)); @@ -5609,7 +5609,7 @@ code = ''' // double check the actual disk state, it's easy for littlefs to // lie here assert(lfsr_mtree_weight(&lfs) - <= ((1+lfs_popc(BOOKENDS)) << lfs.mdir_bits)); + <= ((1+lfs_popc(BOOKENDS)) << lfs.mbits)); lfsr_mdir_t mdir; lfsr_mtree_lookup(&lfs, 0, &mdir) => 0; assert(mdir.rbyd.weight <= 1+lfs_popc(BOOKENDS)); @@ -5765,7 +5765,7 @@ code = ''' // double check the actual disk state, it's easy for littlefs to // lie here assert(lfsr_mtree_weight(&lfs) - <= ((1+lfs_popc(BOOKENDS)) << lfs.mdir_bits)); + <= ((1+lfs_popc(BOOKENDS)) << lfs.mbits)); lfsr_mdir_t mdir; lfsr_mtree_lookup(&lfs, 0, &mdir) => 0; assert(mdir.rbyd.weight <= 1+lfs_popc(BOOKENDS)); diff --git a/tests/test_mtree.toml b/tests/test_mtree.toml index b7670a67..93bb860e 100644 --- a/tests/test_mtree.toml +++ b/tests/test_mtree.toml @@ -187,7 +187,7 @@ code = ''' LFSR_RATTR_BUF(LFSR_TAG_ATTR(3), 0, "c", 1))) => 0; // assert mdirs were unininlined - assert(lfs.mtree.weight == (1 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (1 << lfs.mbits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -211,7 +211,7 @@ code = ''' lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0; // assert mdirs were unininlined - assert(lfs.mtree.weight == (1 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (1 << lfs.mbits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -272,18 +272,18 @@ code = ''' LFSR_RATTR_BUF(LFSR_TAG_ATTR(1), 0, "c", 1))) => 0; // assert mdirs were unininlined and split - assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mbits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); // assert that our entries are still in the mtree - lfsr_mtree_lookup(&lfs, (0 << lfs.mdir_bits)+1, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); - lfsr_mtree_lookup(&lfs, (1 << lfs.mdir_bits)+0, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; @@ -298,18 +298,18 @@ code = ''' lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0; // assert mdirs were unininlined and split - assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mbits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); // assert that our entries are still in the mtree - lfsr_mtree_lookup(&lfs, (0 << lfs.mdir_bits)+1, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); - lfsr_mtree_lookup(&lfs, (1 << lfs.mdir_bits)+0, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; @@ -361,7 +361,7 @@ code = ''' LFSR_RATTR_BUF(LFSR_TAG_ATTR(1), 0, "c", 1))) => 0; // assert mdirs were unininlined and split - assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mbits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -381,18 +381,18 @@ code = ''' LFSR_RATTR_BUF(LFSR_TAG_ATTR(2), 0, "e", 1))) => 0; // assert mdir was split correctly - assert(lfs.mtree.weight == (3 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (3 << lfs.mbits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); // assert that our entries are still in the mtree - lfsr_mtree_lookup(&lfs, (0 << lfs.mdir_bits)+1, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); - lfsr_mtree_lookup(&lfs, (1 << lfs.mdir_bits)+0, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; @@ -402,7 +402,7 @@ code = ''' lfsr_data_read(&lfs, &data, buffer, 1) => 1; assert(buffer[0] == 'c'); - lfsr_mtree_lookup(&lfs, (2 << lfs.mdir_bits)+0, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (2 << lfs.mbits)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; @@ -417,18 +417,18 @@ code = ''' lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0; // assert mdir was split correctly - assert(lfs.mtree.weight == (3 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (3 << lfs.mbits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); // assert that our entries are still in the mtree - lfsr_mtree_lookup(&lfs, (0 << lfs.mdir_bits)+1, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); - lfsr_mtree_lookup(&lfs, (1 << lfs.mdir_bits)+0, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; @@ -438,7 +438,7 @@ code = ''' lfsr_data_read(&lfs, &data, buffer, 1) => 1; assert(buffer[0] == 'c'); - lfsr_mtree_lookup(&lfs, (2 << lfs.mdir_bits)+0, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (2 << lfs.mbits)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; @@ -498,8 +498,8 @@ code = ''' name[0] = '\0'; sprintf(name+1, "%03x", i); mdir.mid += 1; - if (lfsr_mid_rid(&lfs, mdir.mid) >= (lfsr_srid_t)mdir.rbyd.weight) { - lfsr_mtree_lookup(&lfs, lfsr_mid_bid(&lfs, mdir.mid) + 1, + if (lfsr_mrid(&lfs, mdir.mid) >= (lfsr_srid_t)mdir.rbyd.weight) { + lfsr_mtree_lookup(&lfs, lfsr_mbid(&lfs, mdir.mid) + 1, &mdir) => 0; } lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; @@ -520,8 +520,8 @@ code = ''' name[0] = '\0'; sprintf(name+1, "%03x", i); mdir.mid += 1; - if (lfsr_mid_rid(&lfs, mdir.mid) >= (lfsr_srid_t)mdir.rbyd.weight) { - lfsr_mtree_lookup(&lfs, lfsr_mid_bid(&lfs, mdir.mid) + 1, + if (lfsr_mrid(&lfs, mdir.mid) >= (lfsr_srid_t)mdir.rbyd.weight) { + lfsr_mtree_lookup(&lfs, lfsr_mbid(&lfs, mdir.mid) + 1, &mdir) => 0; } lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; @@ -678,7 +678,7 @@ code = ''' LFSR_RATTR_BUF(LFSR_TAG_ATTR(1), 0, "c", 1))) => 0; // assert mdirs were unininlined and split - assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mbits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -691,12 +691,12 @@ code = ''' assert(mdir.rbyd.weight == 0); // assert mdir was dropped - assert(lfs.mtree.weight == (1 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (1 << lfs.mbits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); // assert that our entries are still in the mtree - lfsr_mtree_lookup(&lfs, (0 << lfs.mdir_bits)+1, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; @@ -711,12 +711,12 @@ code = ''' lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0; // assert mdir was dropped - assert(lfs.mtree.weight == (1 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (1 << lfs.mbits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); // assert that our entries are still in the mtree - lfsr_mtree_lookup(&lfs, (0 << lfs.mdir_bits)+1, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; @@ -768,7 +768,7 @@ code = ''' LFSR_RATTR_BUF(LFSR_TAG_ATTR(1), 0, "c", 1))) => 0; // assert mdirs were unininlined and split - assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mbits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -783,12 +783,12 @@ code = ''' assert(mdir.rbyd.weight == 0); // assert mdir was dropped - assert(lfs.mtree.weight == (1 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (1 << lfs.mbits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); // assert that our entries are still in the mtree - lfsr_mtree_lookup(&lfs, (0 << lfs.mdir_bits)+1, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; @@ -803,12 +803,12 @@ code = ''' lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0; // assert mdir was dropped - assert(lfs.mtree.weight == (1 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (1 << lfs.mbits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); // assert that our entries are still in the mtree - lfsr_mtree_lookup(&lfs, (0 << lfs.mdir_bits)+1, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; @@ -866,12 +866,12 @@ code = ''' assert(mdir.rbyd.weight == 2); // assert split/drop worked out - assert(lfs.mtree.weight == (1 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (1 << lfs.mbits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); // assert that our entries are still in the mtree - lfsr_mtree_lookup(&lfs, (0 << lfs.mdir_bits)+1, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; @@ -882,12 +882,12 @@ code = ''' lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0; // assert mdir was dropped - assert(lfs.mtree.weight == (1 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (1 << lfs.mbits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); // assert that our entries are still in the mtree - lfsr_mtree_lookup(&lfs, (0 << lfs.mdir_bits)+1, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; @@ -935,7 +935,7 @@ code = ''' LFSR_RATTR_BUF(LFSR_TAG_ATTR(1), 0, "c", 1))) => 0; // assert mdirs were unininlined and split - assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mbits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -960,12 +960,12 @@ code = ''' assert(mdir.rbyd.weight == 1); // assert split/drop worked out - assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mbits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); // assert that our entries are still in the mtree - lfsr_mtree_lookup(&lfs, (0 << lfs.mdir_bits)+1, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; @@ -975,7 +975,7 @@ code = ''' lfsr_data_read(&lfs, &data, buffer, 1) => 1; assert(buffer[0] == 'c'); - lfsr_mtree_lookup(&lfs, (1 << lfs.mdir_bits)+0, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; @@ -986,12 +986,12 @@ code = ''' lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0; // assert split/drop worked out - assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mbits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); // assert that our entries are still in the mtree - lfsr_mtree_lookup(&lfs, (0 << lfs.mdir_bits)+1, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; @@ -1001,7 +1001,7 @@ code = ''' lfsr_data_read(&lfs, &data, buffer, 1) => 1; assert(buffer[0] == 'c'); - lfsr_mtree_lookup(&lfs, (1 << lfs.mdir_bits)+0, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; @@ -1049,7 +1049,7 @@ code = ''' LFSR_RATTR_BUF(LFSR_TAG_ATTR(1), 0, "c", 1))) => 0; // assert mdirs were unininlined and split - assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mbits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -1074,18 +1074,18 @@ code = ''' assert(mdir.rbyd.weight == 1); // assert split/drop worked out - assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mbits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); // assert that our entries are still in the mtree - lfsr_mtree_lookup(&lfs, (0 << lfs.mdir_bits)+1, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); - lfsr_mtree_lookup(&lfs, (1 << lfs.mdir_bits)+0, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; @@ -1100,18 +1100,18 @@ code = ''' lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0; // assert split/drop worked out - assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mbits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); // assert that our entries are still in the mtree - lfsr_mtree_lookup(&lfs, (0 << lfs.mdir_bits)+1, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); - lfsr_mtree_lookup(&lfs, (1 << lfs.mdir_bits)+0, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; @@ -1287,7 +1287,7 @@ code = ''' LFSR_RATTR_BUF(LFSR_TAG_ATTR(3), 0, "c", 1))) => 0; // assert mdirs were unininlined - assert(lfs.mtree.weight == (1 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (1 << lfs.mbits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -1304,7 +1304,7 @@ code = ''' assert(lfsr_mdir_cmp(&old_mdir, &mdir) != 0); // assert mdirs were unininlined - assert(lfs.mtree.weight == (1 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (1 << lfs.mbits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -1338,7 +1338,7 @@ code = ''' lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0; // assert mdirs were unininlined - assert(lfs.mtree.weight == (1 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (1 << lfs.mbits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -1411,7 +1411,7 @@ code = ''' LFSR_RATTR_BUF(LFSR_TAG_ATTR(1), 0, "c", 1))) => 0; // assert mdirs were unininlined and split - assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mbits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -1430,18 +1430,18 @@ code = ''' assert(lfsr_mdir_cmp(&old_mdir, &mdir) != 0); // assert mdirs were unininlined and split - assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mbits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); // assert that our entries are still in the mtree - lfsr_mtree_lookup(&lfs, (0 << lfs.mdir_bits)+1, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); - lfsr_mtree_lookup(&lfs, (1 << lfs.mdir_bits)+0, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; @@ -1451,7 +1451,7 @@ code = ''' lfsr_data_read(&lfs, &data, buffer, 1) => 1; assert(buffer[0] == 'c'); - lfsr_mtree_lookup(&lfs, (0 << lfs.mdir_bits)+1, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_ATTR(2), &data) => 0; lfsr_data_read(&lfs, &data, buffer, 1) => 1; @@ -1466,18 +1466,18 @@ code = ''' lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0; // assert mdirs were unininlined and split - assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mbits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); // assert that our entries are still in the mtree - lfsr_mtree_lookup(&lfs, (0 << lfs.mdir_bits)+1, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); - lfsr_mtree_lookup(&lfs, (1 << lfs.mdir_bits)+0, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; @@ -1487,7 +1487,7 @@ code = ''' lfsr_data_read(&lfs, &data, buffer, 1) => 1; assert(buffer[0] == 'c'); - lfsr_mtree_lookup(&lfs, (0 << lfs.mdir_bits)+1, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_ATTR(2), &data) => 0; lfsr_data_read(&lfs, &data, buffer, 1) => 1; @@ -1541,7 +1541,7 @@ code = ''' LFSR_RATTR_BUF(LFSR_TAG_ATTR(1), 0, "c", 1))) => 0; // assert mdirs were unininlined and split - assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mbits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -1560,18 +1560,18 @@ code = ''' assert(lfsr_mdir_cmp(&old_mdir, &mdir) != 0); // assert mdirs were unininlined and split - assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mbits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); // assert that our entries are still in the mtree - lfsr_mtree_lookup(&lfs, (0 << lfs.mdir_bits)+1, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); - lfsr_mtree_lookup(&lfs, (1 << lfs.mdir_bits)+0, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; @@ -1581,7 +1581,7 @@ code = ''' lfsr_data_read(&lfs, &data, buffer, 1) => 1; assert(buffer[0] == 'c'); - lfsr_mtree_lookup(&lfs, (1 << lfs.mdir_bits)+0, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_ATTR(2), &data) => 0; lfsr_data_read(&lfs, &data, buffer, 1) => 1; @@ -1596,18 +1596,18 @@ code = ''' lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0; // assert mdirs were unininlined and split - assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mbits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); // assert that our entries are still in the mtree - lfsr_mtree_lookup(&lfs, (0 << lfs.mdir_bits)+1, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); - lfsr_mtree_lookup(&lfs, (1 << lfs.mdir_bits)+0, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; @@ -1617,7 +1617,7 @@ code = ''' lfsr_data_read(&lfs, &data, buffer, 1) => 1; assert(buffer[0] == 'c'); - lfsr_mtree_lookup(&lfs, (1 << lfs.mdir_bits)+0, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_ATTR(2), &data) => 0; lfsr_data_read(&lfs, &data, buffer, 1) => 1; @@ -1668,7 +1668,7 @@ code = ''' assert(lfsr_mdir_cmp(&old_mroot, &lfs.mroot) != 0); // assert that our entry is still in the mroot - lfsr_mtree_lookup(&lfs, (0 << lfs.mdir_bits)+1, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; @@ -1687,7 +1687,7 @@ code = ''' lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0; // assert that our rattr is still in the mroot - lfsr_mtree_lookup(&lfs, (0 << lfs.mdir_bits)+1, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; @@ -1763,7 +1763,7 @@ code = ''' assert(lfsr_mdir_cmp(&old_mroot, &lfs.mroot) != 0); // assert that our rattr is still in the mroot - lfsr_mtree_lookup(&lfs, (0 << lfs.mdir_bits)+1, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; @@ -1798,7 +1798,7 @@ code = ''' lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0; // assert that our rattr is still in the mroot - lfsr_mtree_lookup(&lfs, (0 << lfs.mdir_bits)+1, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; @@ -1880,7 +1880,7 @@ code = ''' assert(lfsr_mdir_cmp(&old_mroot, &lfs.mroot) != 0); // assert that our entry is still in the mroot - lfsr_mtree_lookup(&lfs, (0 << lfs.mdir_bits)+1, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; @@ -1907,7 +1907,7 @@ code = ''' lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0; // assert that our rattr is still in the mroot - lfsr_mtree_lookup(&lfs, (0 << lfs.mdir_bits)+1, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; @@ -1973,7 +1973,7 @@ code = ''' LFSR_RATTR_BUF(LFSR_TAG_ATTR(1), 0, "c", 1))) => 0; // assert mdirs were unininlined and split - assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mbits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -1997,18 +1997,18 @@ code = ''' assert(lfsr_mdir_cmp(&old_mroot, &lfs.mroot) != 0); // assert mdirs were unininlined and split - assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mbits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); // assert that our entries are still in the mtree - lfsr_mtree_lookup(&lfs, (0 << lfs.mdir_bits)+1, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); - lfsr_mtree_lookup(&lfs, (1 << lfs.mdir_bits)+0, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; @@ -2018,7 +2018,7 @@ code = ''' lfsr_data_read(&lfs, &data, buffer, 1) => 1; assert(buffer[0] == 'c'); - lfsr_mtree_lookup(&lfs, (1 << lfs.mdir_bits)+0, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_ATTR(2), &data) => 0; lfsr_data_read(&lfs, &data, buffer, 1) => 1; @@ -2033,18 +2033,18 @@ code = ''' lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0; // assert mdirs were unininlined and split - assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mbits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); // assert that our entries are still in the mtree - lfsr_mtree_lookup(&lfs, (0 << lfs.mdir_bits)+1, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); - lfsr_mtree_lookup(&lfs, (1 << lfs.mdir_bits)+0, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; @@ -2054,7 +2054,7 @@ code = ''' lfsr_data_read(&lfs, &data, buffer, 1) => 1; assert(buffer[0] == 'c'); - lfsr_mtree_lookup(&lfs, (1 << lfs.mdir_bits)+0, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_ATTR(2), &data) => 0; lfsr_data_read(&lfs, &data, buffer, 1) => 1; @@ -2108,7 +2108,7 @@ code = ''' LFSR_RATTR_BUF(LFSR_TAG_ATTR(1), 0, "c", 1))) => 0; // assert mdirs were unininlined and split - assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mbits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -2139,18 +2139,18 @@ code = ''' assert(lfsr_mdir_cmp(&old_mroot, &lfs.mroot) != 0); // assert mdir was split correctly - assert(lfs.mtree.weight == (3 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (3 << lfs.mbits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); // assert that our entries are still in the mtree - lfsr_mtree_lookup(&lfs, (0 << lfs.mdir_bits)+1, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); - lfsr_mtree_lookup(&lfs, (1 << lfs.mdir_bits)+0, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; @@ -2160,7 +2160,7 @@ code = ''' lfsr_data_read(&lfs, &data, buffer, 1) => 1; assert(buffer[0] == 'c'); - lfsr_mtree_lookup(&lfs, (2 << lfs.mdir_bits)+0, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (2 << lfs.mbits)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; @@ -2179,18 +2179,18 @@ code = ''' lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0; // assert mdir was split correctly - assert(lfs.mtree.weight == (3 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (3 << lfs.mbits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); // assert that our entries are still in the mtree - lfsr_mtree_lookup(&lfs, (0 << lfs.mdir_bits)+1, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); - lfsr_mtree_lookup(&lfs, (1 << lfs.mdir_bits)+0, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; @@ -2200,7 +2200,7 @@ code = ''' lfsr_data_read(&lfs, &data, buffer, 1) => 1; assert(buffer[0] == 'c'); - lfsr_mtree_lookup(&lfs, (2 << lfs.mdir_bits)+0, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (2 << lfs.mbits)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; @@ -2258,7 +2258,7 @@ code = ''' LFSR_RATTR_BUF(LFSR_TAG_ATTR(1), 0, "c", 1))) => 0; // assert mdirs were unininlined and split - assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mbits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -2282,12 +2282,12 @@ code = ''' assert(lfsr_mdir_cmp(&old_mroot, &lfs.mroot) != 0); // assert mdir was dropped - assert(lfs.mtree.weight == (1 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (1 << lfs.mbits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); // assert that our entries are still in the mtree - lfsr_mtree_lookup(&lfs, (0 << lfs.mdir_bits)+1, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; @@ -2302,12 +2302,12 @@ code = ''' lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0; // assert mdir was dropped - assert(lfs.mtree.weight == (1 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (1 << lfs.mbits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); // assert that our entries are still in the mtree - lfsr_mtree_lookup(&lfs, (0 << lfs.mdir_bits)+1, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; @@ -2359,7 +2359,7 @@ code = ''' assert(lfsr_mdir_cmp(&old_mroot, &lfs.mroot) != 0); // assert mdirs were unininlined - assert(lfs.mtree.weight == (1 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (1 << lfs.mbits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -2383,7 +2383,7 @@ code = ''' lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0; // assert mdirs were unininlined - assert(lfs.mtree.weight == (1 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (1 << lfs.mbits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -2454,18 +2454,18 @@ code = ''' assert(lfsr_mdir_cmp(&old_mroot, &lfs.mroot) != 0); // assert mdirs were unininlined and split - assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mbits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); // assert that our entries are still in the mtree - lfsr_mtree_lookup(&lfs, (0 << lfs.mdir_bits)+1, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); - lfsr_mtree_lookup(&lfs, (1 << lfs.mdir_bits)+0, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; @@ -2480,18 +2480,18 @@ code = ''' lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0; // assert mdirs were unininlined and split - assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mbits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); // assert that our entries are still in the mtree - lfsr_mtree_lookup(&lfs, (0 << lfs.mdir_bits)+1, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); - lfsr_mtree_lookup(&lfs, (1 << lfs.mdir_bits)+0, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; @@ -2879,7 +2879,7 @@ code = ''' lfsr_mdir_commit(&lfs, &lfs.mroot, NULL, 0) => 0; // assert mdirs were unininlined and split - assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mbits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -2970,7 +2970,7 @@ code = ''' lfsr_mdir_commit(&lfs, &mdir, NULL, 0) => 0; // assert mdir was split correctly - assert(lfs.mtree.weight == (3 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (3 << lfs.mbits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -3105,7 +3105,7 @@ code = ''' lfsr_mdir_commit(&lfs, &lfs.mroot, NULL, 0) => 0; // assert mdirs were unininlined and split - assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mbits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -3202,7 +3202,7 @@ code = ''' lfsr_mdir_commit(&lfs, &lfs.mroot, NULL, 0) => 0; // assert mdirs were unininlined and split - assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mbits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -3311,7 +3311,7 @@ code = ''' lfsr_mdir_commit(&lfs, &mdir, NULL, 0) => 0; // assert mdir was split correctly - assert(lfs.mtree.weight == (3 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (3 << lfs.mbits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -3330,7 +3330,7 @@ code = ''' lfsr_mdir_commit(&lfs, &mdir, NULL, 0) => 0; // assert mdir was split correctly - assert(lfs.mtree.weight == (4 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (4 << lfs.mbits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -3421,7 +3421,7 @@ code = ''' lfsr_mdir_commit(&lfs, &mdir, NULL, 0) => 0; // assert mdir was split correctly - assert(lfs.mtree.weight == (3 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (3 << lfs.mbits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -3431,7 +3431,7 @@ code = ''' assert(mdir.rbyd.weight == 0); // assert mdir was dropped correctly - assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mbits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -3588,7 +3588,7 @@ code = ''' lfsr_mdir_commit(&lfs, &lfs.mroot, NULL, 0) => 0; // assert mdirs were unininlined - assert(lfs.mtree.weight == (1 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (1 << lfs.mbits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -3654,7 +3654,7 @@ code = ''' // and the tree should still work // assert mdirs were unininlined - assert(lfs.mtree.weight == (1 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (1 << lfs.mbits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -3674,7 +3674,7 @@ code = ''' lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0; // assert mdirs were unininlined - assert(lfs.mtree.weight == (1 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (1 << lfs.mbits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -3731,7 +3731,7 @@ code = ''' lfsr_mdir_commit(&lfs, &lfs.mroot, NULL, 0) => 0; // assert mdirs were unininlined and split - assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mbits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -3797,18 +3797,18 @@ code = ''' // and the tree should still work // assert mdirs were unininlined and split - assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mbits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); // assert that our entries are still in the mtree - lfsr_mtree_lookup(&lfs, (0 << lfs.mdir_bits)+1, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); - lfsr_mtree_lookup(&lfs, (1 << lfs.mdir_bits)+0, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; @@ -3819,18 +3819,18 @@ code = ''' lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0; // assert mdirs were unininlined and split - assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mbits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); // assert that our entries are still in the mtree - lfsr_mtree_lookup(&lfs, (0 << lfs.mdir_bits)+1, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); - lfsr_mtree_lookup(&lfs, (1 << lfs.mdir_bits)+0, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; @@ -3878,7 +3878,7 @@ code = ''' lfsr_mdir_commit(&lfs, &lfs.mroot, NULL, 0) => 0; // assert mdirs were unininlined and split - assert(lfs.mtree.weight == (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (2 << lfs.mbits)); // assert mroot now has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -3897,7 +3897,7 @@ code = ''' lfsr_mdir_commit(&lfs, &mdir, NULL, 0) => 0; // assert mdir was split correctly - assert(lfs.mtree.weight == (3 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (3 << lfs.mbits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); @@ -3963,24 +3963,24 @@ code = ''' // and the tree should still work // assert mdir was split correctly - assert(lfs.mtree.weight == (3 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (3 << lfs.mbits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); // assert that our entries are still in the mtree - lfsr_mtree_lookup(&lfs, (0 << lfs.mdir_bits)+1, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); - lfsr_mtree_lookup(&lfs, (1 << lfs.mdir_bits)+0, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; assert(buffer[1] == 'b'); - lfsr_mtree_lookup(&lfs, (2 << lfs.mdir_bits)+0, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (2 << lfs.mbits)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; @@ -3991,24 +3991,24 @@ code = ''' lfsr_mount(&lfs, LFS_M_RDWR | M_FLAGS, CFG) => 0; // assert mdir was split correctly - assert(lfs.mtree.weight == (3 << lfs.mdir_bits)); + assert(lfs.mtree.weight == (3 << lfs.mbits)); // assert mroot still has no entries assert(lfs.mroot.rbyd.weight == 0); // assert that our entries are still in the mtree - lfsr_mtree_lookup(&lfs, (0 << lfs.mdir_bits)+1, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; assert(buffer[1] == 'a'); - lfsr_mtree_lookup(&lfs, (1 << lfs.mdir_bits)+0, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (1 << lfs.mbits)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; assert(buffer[1] == 'b'); - lfsr_mtree_lookup(&lfs, (2 << lfs.mdir_bits)+0, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (2 << lfs.mbits)+0, &mdir) => 0; assert(mdir.rbyd.weight == 1); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; @@ -4243,8 +4243,8 @@ code = ''' name[0] = '\0'; sprintf(name+1, "%03x", i); mdir.mid += 1; - if (lfsr_mid_rid(&lfs, mdir.mid) >= (lfsr_srid_t)mdir.rbyd.weight) { - lfsr_mtree_lookup(&lfs, lfsr_mid_bid(&lfs, mdir.mid) + 1, + if (lfsr_mrid(&lfs, mdir.mid) >= (lfsr_srid_t)mdir.rbyd.weight) { + lfsr_mtree_lookup(&lfs, lfsr_mbid(&lfs, mdir.mid) + 1, &mdir) => 0; } lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; @@ -4265,8 +4265,8 @@ code = ''' name[0] = '\0'; sprintf(name+1, "%03x", i); mdir.mid += 1; - if (lfsr_mid_rid(&lfs, mdir.mid) >= (lfsr_srid_t)mdir.rbyd.weight) { - lfsr_mtree_lookup(&lfs, lfsr_mid_bid(&lfs, mdir.mid) + 1, + if (lfsr_mrid(&lfs, mdir.mid) >= (lfsr_srid_t)mdir.rbyd.weight) { + lfsr_mtree_lookup(&lfs, lfsr_mbid(&lfs, mdir.mid) + 1, &mdir) => 0; } lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; @@ -4801,7 +4801,7 @@ code = ''' assert(lfsr_mdir_cmp(&old_mroot, &lfs.mroot) != 0); // assert that our entry is still in the mroot - lfsr_mtree_lookup(&lfs, (0 << lfs.mdir_bits)+1, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; @@ -4874,7 +4874,7 @@ code = ''' assert(lfsr_mdir_cmp(&old_mroot, &lfs.mroot) != 0); // assert that our rattr is still in the mroot - lfsr_mtree_lookup(&lfs, (0 << lfs.mdir_bits)+1, &mdir) => 0; + lfsr_mtree_lookup(&lfs, (0 << lfs.mbits)+1, &mdir) => 0; assert(mdir.rbyd.weight == 2); lfsr_mdir_lookup(&lfs, &mdir, LFSR_TAG_REG, &data) => 0; lfsr_data_read(&lfs, &data, buffer, SIZE) => SIZE; diff --git a/tests/test_traversal.toml b/tests/test_traversal.toml index 59d740bf..be82e246 100644 --- a/tests/test_traversal.toml +++ b/tests/test_traversal.toml @@ -6466,7 +6466,7 @@ code = ''' assert(!(lfs.flags & LFS_I_MKCONSISTENT)); // which means there shouldn't be that many files left - assert(lfs.mtree.weight <= (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight <= (2 << lfs.mbits)); assert(file1.b.o.mdir.rbyd.weight <= 3); assert(file2.b.o.mdir.rbyd.weight <= 3); @@ -6767,7 +6767,7 @@ code = ''' assert(!(lfs.flags & LFS_I_MKCONSISTENT)); // which means there shouldn't be that many files left - assert(lfs.mtree.weight <= (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight <= (2 << lfs.mbits)); assert(file1.b.o.mdir.rbyd.weight <= 3); assert(file2.b.o.mdir.rbyd.weight <= 3); @@ -6925,7 +6925,7 @@ code = ''' assert(!(lfs.flags & LFS_I_MKCONSISTENT)); // which means there shouldn't be that many files left - assert(lfs.mtree.weight <= (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight <= (2 << lfs.mbits)); assert(file1.b.o.mdir.rbyd.weight <= 3); assert(file2.b.o.mdir.rbyd.weight <= 3); @@ -7094,7 +7094,7 @@ code = ''' assert(!(lfs.flags & LFS_I_MKCONSISTENT)); // which means there shouldn't be that many files left - assert(lfs.mtree.weight <= (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight <= (2 << lfs.mbits)); assert(file1.b.o.mdir.rbyd.weight <= 3); assert(file2.b.o.mdir.rbyd.weight <= 3); @@ -7261,7 +7261,7 @@ code = ''' assert(!(lfs.flags & LFS_I_MKCONSISTENT)); // which means there shouldn't be that many files left - assert(lfs.mtree.weight <= (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight <= (2 << lfs.mbits)); assert(file1.b.o.mdir.rbyd.weight <= 3); assert(file2.b.o.mdir.rbyd.weight <= 3); @@ -7426,7 +7426,7 @@ code = ''' assert(!(lfs.flags & LFS_I_MKCONSISTENT)); // which means there shouldn't be that many files left - assert(lfs.mtree.weight <= (2 << lfs.mdir_bits)); + assert(lfs.mtree.weight <= (2 << lfs.mbits)); assert(file1.b.o.mdir.rbyd.weight <= 3); assert(file2.b.o.mdir.rbyd.weight <= 3);