From f9d7885edc789c72ebc759eaeb0f2c0f0ec79d91 Mon Sep 17 00:00:00 2001 From: Christopher Haster Date: Thu, 17 Jul 2025 16:42:45 -0500 Subject: [PATCH] tag-returning: Adopted tag-returns in mdir/mtree namelookup - lfs3_mdir_namelookup - lfs3_mtree_namelookup These are interesting, because, unlike lfs3_rbyd_namelookup, we don't care about how query mids compare with the found mid. Adopting tag-returns does mean we no longer return the relevant tag when the query mid is missing, but the fact that the tests are passing means this is a non-issue. Shaves off a bit more code: code stack ctx before: 36260 2336 656 after: 36216 (-0.1%) 2336 (+0.0%) 656 (+0.0%) Maybe these should have been updated in lock-step with lfs3_mtree_pathlookup, but lfs3_mtree_pathlookup is going to impact a lot more code... --- lfs3.c | 104 +++++++------- tests/test_mtree.toml | 324 +++++++++++++++++++++--------------------- 2 files changed, 214 insertions(+), 214 deletions(-) diff --git a/lfs3.c b/lfs3.c index d953fee6..da748993 100644 --- a/lfs3.c +++ b/lfs3.c @@ -9434,10 +9434,10 @@ static int lfs3_mdir_compact(lfs3_t *lfs3, lfs3_mdir_t *mdir) { // lookup names in an mdir // -// if not found, rid will be the best place to insert -static int lfs3_mdir_namelookup(lfs3_t *lfs3, const lfs3_mdir_t *mdir, +// if not found, mid will be the best place to insert +static lfs3_stag_t lfs3_mdir_namelookup(lfs3_t *lfs3, const lfs3_mdir_t *mdir, lfs3_did_t did, const char *name, lfs3_size_t name_len, - lfs3_smid_t *mid_, lfs3_tag_t *tag_, lfs3_data_t *data_) { + lfs3_smid_t *mid_, lfs3_data_t *data_) { // default to mid_ = 0, this blanket assignment is the only way to // keep GCC happy if (mid_) { @@ -9472,18 +9472,17 @@ static int lfs3_mdir_namelookup(lfs3_t *lfs3, const lfs3_mdir_t *mdir, if (mid_) { *mid_ = mid; } - if (tag_) { - *tag_ = tag; - } - return (cmp == LFS3_CMP_EQ) ? 0 : LFS3_ERR_NOENT; + return (cmp == LFS3_CMP_EQ) + ? tag + : LFS3_ERR_NOENT; } // lookup names in our mtree // -// if not found, rid will be the best place to insert -static int lfs3_mtree_namelookup(lfs3_t *lfs3, +// if not found, mid will be the best place to insert +static lfs3_stag_t lfs3_mtree_namelookup(lfs3_t *lfs3, lfs3_did_t did, const char *name, lfs3_size_t name_len, - lfs3_mdir_t *mdir_, lfs3_tag_t *tag_, lfs3_data_t *data_) { + lfs3_mdir_t *mdir_, lfs3_data_t *data_) { // do we only have mroot? if (LFS3_IFDEF_2BONLY(0, lfs3->mtree.weight) == 0) { // treat inlined mdir as mid=0 @@ -9519,7 +9518,7 @@ static int lfs3_mtree_namelookup(lfs3_t *lfs3, } } - // fetch mdir + // fetch the mdir int err = lfs3_data_fetchmdir(lfs3, &data, bid-((1 << lfs3->mbits)-1), mdir_); if (err) { @@ -9530,15 +9529,16 @@ static int lfs3_mtree_namelookup(lfs3_t *lfs3, // and lookup name in our mdir lfs3_smid_t mid; - int err = lfs3_mdir_namelookup(lfs3, mdir_, did, name, name_len, - &mid, tag_, data_); - if (err && err != LFS3_ERR_NOENT) { - return err; + lfs3_stag_t tag = lfs3_mdir_namelookup(lfs3, mdir_, + did, name, name_len, + &mid, data_); + if (tag < 0 && tag != LFS3_ERR_NOENT) { + return tag; } // update mdir with best place to insert even if we fail mdir_->mid = mid; - return err; + return tag; } @@ -9579,7 +9579,7 @@ static int lfs3_mtree_pathlookup(lfs3_t *lfs3, const char **path, lfs3_mdir_t *mdir_, lfs3_tag_t *tag_, lfs3_did_t *did_) { // setup root *mdir_ = lfs3->mroot; - lfs3_tag_t tag = LFS3_TAG_DIR; + lfs3_stag_t tag = LFS3_TAG_DIR; lfs3_did_t did = LFS3_DID_ROOT; // we reduce path to a single name if we can find it @@ -9655,7 +9655,7 @@ static int lfs3_mtree_pathlookup(lfs3_t *lfs3, const char **path, // read the next did from the mdir if this is not the root if (mdir_->mid != -1) { lfs3_data_t data; - lfs3_stag_t tag = lfs3_mdir_lookup(lfs3, mdir_, LFS3_TAG_DID, + tag = lfs3_mdir_lookup(lfs3, mdir_, LFS3_TAG_DID, &data); if (tag < 0) { return tag; @@ -9671,14 +9671,14 @@ static int lfs3_mtree_pathlookup(lfs3_t *lfs3, const char **path, *path = path_; // lookup up this name in the mtree - int err = lfs3_mtree_namelookup(lfs3, did, path_, name_len, - mdir_, &tag, NULL); - if (err && err != LFS3_ERR_NOENT) { - return err; + tag = lfs3_mtree_namelookup(lfs3, did, path_, name_len, + mdir_, NULL); + if (tag < 0 && tag != LFS3_ERR_NOENT) { + return tag; } - // keep track of where to insert if we can't find path - if (err == LFS3_ERR_NOENT) { + if (tag == LFS3_ERR_NOENT) { + // keep track of where to insert if we can't find path if (tag_) { *tag_ = tag; } @@ -10502,10 +10502,10 @@ int lfs3_mkdir(lfs3_t *lfs3, const char *path) { // lookup our parent lfs3_mdir_t mdir; - lfs3_tag_t tag; + lfs3_stag_t tag; lfs3_did_t did; err = lfs3_mtree_pathlookup(lfs3, &path, - &mdir, &tag, &did); + &mdir, (lfs3_tag_t*)&tag, &did); if (err && !(err == LFS3_ERR_NOENT && lfs3_path_islast(path))) { return err; } @@ -10585,13 +10585,13 @@ int lfs3_mkdir(lfs3_t *lfs3, const char *path) { // check if we have a collision, if we do, search for the next // available did while (true) { - err = lfs3_mtree_namelookup(lfs3, did_, NULL, 0, - &mdir, NULL, NULL); - if (err) { - if (err == LFS3_ERR_NOENT) { + tag = lfs3_mtree_namelookup(lfs3, did_, NULL, 0, + &mdir, NULL); + if (tag < 0) { + if (tag == LFS3_ERR_NOENT) { break; } - return err; + return tag; } // try the next did @@ -10625,12 +10625,12 @@ int lfs3_mkdir(lfs3_t *lfs3, const char *path) { // committing our bookmark may have changed the mid of our metadata entry, // we need to look it up again, we can at least avoid the full path walk - err = lfs3_mtree_namelookup(lfs3, did, name, name_len, - &mdir, NULL, NULL); - if (err && err != LFS3_ERR_NOENT) { - return err; + tag = lfs3_mtree_namelookup(lfs3, did, name, name_len, + &mdir, NULL); + if (tag < 0 && tag != LFS3_ERR_NOENT) { + return tag; } - LFS3_ASSERT((exists) ? !err : err == LFS3_ERR_NOENT); + LFS3_ASSERT((exists) ? tag >= 0 : tag == LFS3_ERR_NOENT); // commit our new directory into our parent, zeroing the grm in the // process @@ -10675,11 +10675,11 @@ int lfs3_mkdir(lfs3_t *lfs3, const char *path) { static int lfs3_grm_pushdid(lfs3_t *lfs3, lfs3_did_t did) { // first lookup the bookmark entry lfs3_mdir_t bookmark_mdir; - int err = lfs3_mtree_namelookup(lfs3, did, NULL, 0, - &bookmark_mdir, NULL, NULL); - if (err) { - LFS3_ASSERT(err != LFS3_ERR_NOENT); - return err; + lfs3_stag_t tag = lfs3_mtree_namelookup(lfs3, did, NULL, 0, + &bookmark_mdir, NULL); + if (tag < 0) { + LFS3_ASSERT(tag != LFS3_ERR_NOENT); + return tag; } lfs3_mid_t bookmark_mid = bookmark_mdir.mid; @@ -10687,19 +10687,19 @@ static int lfs3_grm_pushdid(lfs3_t *lfs3, lfs3_did_t did) { bookmark_mdir.mid += 1; if (lfs3_mrid(lfs3, bookmark_mdir.mid) >= (lfs3_srid_t)bookmark_mdir.r.weight) { - err = lfs3_mtree_lookup(lfs3, + tag = lfs3_mtree_lookup(lfs3, lfs3_mbid(lfs3, bookmark_mdir.mid-1) + 1, &bookmark_mdir); - if (err) { - if (err == LFS3_ERR_NOENT) { + if (tag < 0) { + if (tag == LFS3_ERR_NOENT) { goto empty; } - return err; + return tag; } } lfs3_data_t data; - lfs3_stag_t tag = lfs3_mdir_lookup(lfs3, &bookmark_mdir, + tag = lfs3_mdir_lookup(lfs3, &bookmark_mdir, LFS3_TAG_MASK8 | LFS3_TAG_NAME, &data); if (tag < 0) { @@ -10708,7 +10708,7 @@ static int lfs3_grm_pushdid(lfs3_t *lfs3, lfs3_did_t did) { } lfs3_did_t did_; - err = lfs3_data_readleb128(lfs3, &data, &did_); + int err = lfs3_data_readleb128(lfs3, &data, &did_); if (err) { return err; } @@ -11301,11 +11301,11 @@ static int lfs3_dir_rewind_(lfs3_t *lfs3, lfs3_dir_t *dir) { } // lookup our bookmark in the mtree - int err = lfs3_mtree_namelookup(lfs3, dir->did, NULL, 0, - &dir->o.mdir, NULL, NULL); - if (err) { - LFS3_ASSERT(err != LFS3_ERR_NOENT); - return err; + lfs3_stag_t tag = lfs3_mtree_namelookup(lfs3, dir->did, NULL, 0, + &dir->o.mdir, NULL); + if (tag < 0) { + LFS3_ASSERT(tag != LFS3_ERR_NOENT); + return tag; } // eagerly set to next entry diff --git a/tests/test_mtree.toml b/tests/test_mtree.toml index 7c307c5b..e9e86d57 100644 --- a/tests/test_mtree.toml +++ b/tests/test_mtree.toml @@ -274,7 +274,7 @@ code = ''' memset(buffer+1, 'a', SIZE-1); lfs3_mdir_t mdir; lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -283,7 +283,7 @@ code = ''' memset(buffer+1, 'b', SIZE-1); lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -369,7 +369,7 @@ code = ''' memset(buffer+1, 'a', SIZE-1); lfs3_mdir_t mdir; lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -378,7 +378,7 @@ code = ''' memset(buffer+1, 'b', SIZE-1); lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -398,7 +398,7 @@ code = ''' // now add another large entry to an mdir, forcing a split memset(buffer+1, 'd', SIZE-1); lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -510,7 +510,7 @@ code = ''' sprintf(name+1, "%03x", i); lfs3_mdir_t mdir; lfs3_mtree_namelookup(&lfs3, 0, name+1, 3, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; // force a compaction? if (FORCE_COMPACTION) { lfs3.mroot.r.eoff = -1; @@ -608,10 +608,10 @@ code = ''' name[0] = '\0'; sprintf(name+1, "%03x", x); lfs3_mdir_t mdir; - int err = lfs3_mtree_namelookup(&lfs3, 0, name+1, 3, - &mdir, NULL, NULL); - assert(!err || err == LFS3_ERR_NOENT); - if (!err) { + lfs3_stag_t tag = lfs3_mtree_namelookup(&lfs3, 0, name+1, 3, + &mdir, NULL); + assert(tag >= 0 || tag == LFS3_ERR_NOENT); + if (tag != LFS3_ERR_NOENT) { continue; } // force a compaction? @@ -645,14 +645,14 @@ code = ''' sprintf(name+1, "%03x", i); if (sim[i]) { lfs3_mtree_namelookup(&lfs3, 0, name+1, 3, - &mdir, NULL, NULL) => 0; + &mdir, NULL) => LFS3_TAG_REG; lfs3_mdir_lookup(&lfs3, &mdir, LFS3_TAG_REG, &data) => LFS3_TAG_REG; lfs3_data_read(&lfs3, &data, buffer, sizeof(buffer)) => 4; assert(memcmp(buffer, name, 4) == 0); } else { lfs3_mtree_namelookup(&lfs3, 0, name+1, 3, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; } } @@ -671,14 +671,14 @@ code = ''' sprintf(name+1, "%03x", i); if (sim[i]) { lfs3_mtree_namelookup(&lfs3, 0, name+1, 3, - &mdir, NULL, NULL) => 0; + &mdir, NULL) => LFS3_TAG_REG; lfs3_mdir_lookup(&lfs3, &mdir, LFS3_TAG_REG, &data) => LFS3_TAG_REG; lfs3_data_read(&lfs3, &data, buffer, sizeof(buffer)) => 4; assert(memcmp(buffer, name, 4) == 0); } else { lfs3_mtree_namelookup(&lfs3, 0, name+1, 3, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; } } @@ -706,7 +706,7 @@ code = ''' memset(buffer+1, 'a', SIZE-1); lfs3_mdir_t mdir; lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -715,7 +715,7 @@ code = ''' memset(buffer+1, 'b', SIZE-1); lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -735,7 +735,7 @@ code = ''' // remove an entry, forcing the mdir to be dropped memset(buffer+1, 'b', SIZE-1); lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => 0; + &mdir, NULL) => LFS3_TAG_REG; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR(LFS3_TAG_RM, -1))) => 0; assert(mdir.r.weight == 0); @@ -800,7 +800,7 @@ code = ''' memset(buffer+1, 'a', SIZE-1); lfs3_mdir_t mdir; lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -809,7 +809,7 @@ code = ''' memset(buffer+1, 'b', SIZE-1); lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -829,7 +829,7 @@ code = ''' // remove an entry, forcing the mdir to be dropped memset(buffer+1, 'b', SIZE-1); lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => 0; + &mdir, NULL) => LFS3_TAG_REG; // force mdir to compact while we're removing mdir.r.eoff = -1; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( @@ -896,7 +896,7 @@ code = ''' memset(buffer+1, 'a', SIZE-1); lfs3_mdir_t mdir; lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -905,7 +905,7 @@ code = ''' memset(buffer+1, 'b', SIZE-1); lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -915,7 +915,7 @@ code = ''' // remove an entry, forcing the mdir to be dropped memset(buffer+1, 'b', SIZE-1); lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => 0; + &mdir, NULL) => LFS3_TAG_REG; // force mdir to compact while we're removing lfs3.mroot.r.eoff = -1; mdir.r.eoff = -1; @@ -973,7 +973,7 @@ code = ''' memset(buffer+1, 'a', SIZE-1); lfs3_mdir_t mdir; lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -982,7 +982,7 @@ code = ''' memset(buffer+1, 'b', SIZE-1); lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -1002,7 +1002,7 @@ code = ''' // now add another large entry to an mdir, forcing a split memset(buffer+1, 'd', SIZE-1); lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -1012,7 +1012,7 @@ code = ''' // remove an entry, forcing the mdir to be dropped memset(buffer+1, 'b', SIZE-1); lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => 0; + &mdir, NULL) => LFS3_TAG_REG; // force mdir to compact while we're removing mdir.r.eoff = -1; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( @@ -1093,7 +1093,7 @@ code = ''' memset(buffer+1, 'a', SIZE-1); lfs3_mdir_t mdir; lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -1102,7 +1102,7 @@ code = ''' memset(buffer+1, 'b', SIZE-1); lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -1122,7 +1122,7 @@ code = ''' // now add another large entry to an mdir, forcing a split memset(buffer+1, 'd', SIZE-1); lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -1132,7 +1132,7 @@ code = ''' // remove an entry, forcing the mdir to be dropped memset(buffer+1, 'd', SIZE-1); lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => 0; + &mdir, NULL) => LFS3_TAG_REG; // force mdir to compact while we're removing mdir.r.eoff = -1; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( @@ -1230,10 +1230,10 @@ code = ''' // update mtree lfs3_mdir_t mdir; - int err = lfs3_mtree_namelookup(&lfs3, 0, name+1, 3, - &mdir, NULL, NULL); - assert(!err || err == LFS3_ERR_NOENT); - if (!err) { + lfs3_stag_t tag = lfs3_mtree_namelookup(&lfs3, 0, name+1, 3, + &mdir, NULL); + assert(tag >= 0 || tag == LFS3_ERR_NOENT); + if (tag != LFS3_ERR_NOENT) { continue; } // force a compaction? @@ -1259,10 +1259,10 @@ code = ''' // update mtree lfs3_mdir_t mdir; - int err = lfs3_mtree_namelookup(&lfs3, 0, name+1, 3, - &mdir, NULL, NULL); - assert(!err || err == LFS3_ERR_NOENT); - if (err == LFS3_ERR_NOENT) { + lfs3_stag_t tag = lfs3_mtree_namelookup(&lfs3, 0, name+1, 3, + &mdir, NULL); + assert(tag >= 0 || tag == LFS3_ERR_NOENT); + if (tag == LFS3_ERR_NOENT) { continue; } // force a compaction? @@ -1289,14 +1289,14 @@ code = ''' sprintf(name+1, "%03x", i); if (sim[i]) { lfs3_mtree_namelookup(&lfs3, 0, name+1, 3, - &mdir, NULL, NULL) => 0; + &mdir, NULL) => LFS3_TAG_REG; lfs3_mdir_lookup(&lfs3, &mdir, LFS3_TAG_REG, &data) => LFS3_TAG_REG; lfs3_data_read(&lfs3, &data, buffer, sizeof(buffer)) => 4; assert(memcmp(buffer, name, 4) == 0); } else { lfs3_mtree_namelookup(&lfs3, 0, name+1, 3, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; } } @@ -1315,14 +1315,14 @@ code = ''' sprintf(name+1, "%03x", i); if (sim[i]) { lfs3_mtree_namelookup(&lfs3, 0, name+1, 3, - &mdir, NULL, NULL) => 0; + &mdir, NULL) => LFS3_TAG_REG; lfs3_mdir_lookup(&lfs3, &mdir, LFS3_TAG_REG, &data) => LFS3_TAG_REG; lfs3_data_read(&lfs3, &data, buffer, sizeof(buffer)) => 4; assert(memcmp(buffer, name, 4) == 0); } else { lfs3_mtree_namelookup(&lfs3, 0, name+1, 3, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; } } @@ -1478,7 +1478,7 @@ code = ''' memset(buffer+1, 'a', SIZE-1); lfs3_mdir_t mdir; lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -1487,7 +1487,7 @@ code = ''' memset(buffer+1, 'b', SIZE-1); lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -1507,7 +1507,7 @@ code = ''' // force mdir to compact twice, this should relocate memset(buffer+1, 'a', SIZE-1); lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => 0; + &mdir, NULL) => LFS3_TAG_REG; lfs3_mdir_t old_mdir = mdir; mdir.r.eoff = -1; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( @@ -1618,7 +1618,7 @@ code = ''' memset(buffer+1, 'a', SIZE-1); lfs3_mdir_t mdir; lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -1627,7 +1627,7 @@ code = ''' memset(buffer+1, 'b', SIZE-1); lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -1647,7 +1647,7 @@ code = ''' // force mdir to compact twice, this should relocate memset(buffer+1, 'b', SIZE-1); lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => 0; + &mdir, NULL) => LFS3_TAG_REG; lfs3_mdir_t old_mdir = mdir; mdir.r.eoff = -1; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( @@ -1758,7 +1758,7 @@ code = ''' memset(buffer+1, 'a', SIZE-1); lfs3_mdir_t mdir; lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -1841,7 +1841,7 @@ code = ''' memset(buffer+1, 'a', SIZE-1); lfs3_mdir_t mdir; lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -1979,7 +1979,7 @@ code = ''' memset(buffer+1, 'a', SIZE-1); lfs3_mdir_t mdir; lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -2090,7 +2090,7 @@ code = ''' memset(buffer+1, 'a', SIZE-1); lfs3_mdir_t mdir; lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -2099,7 +2099,7 @@ code = ''' memset(buffer+1, 'b', SIZE-1); lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -2122,7 +2122,7 @@ code = ''' // force mdir to compact twice, this should relocate memset(buffer+1, 'b', SIZE-1); lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => 0; + &mdir, NULL) => LFS3_TAG_REG; lfs3_mdir_t old_mdir = mdir; mdir.r.eoff = -1; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( @@ -2235,7 +2235,7 @@ code = ''' memset(buffer+1, 'a', SIZE-1); lfs3_mdir_t mdir; lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -2244,7 +2244,7 @@ code = ''' memset(buffer+1, 'b', SIZE-1); lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -2264,7 +2264,7 @@ code = ''' // now add another large entry to an mdir, forcing a split memset(buffer+1, 'd', SIZE-1); lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -2397,7 +2397,7 @@ code = ''' memset(buffer+1, 'a', SIZE-1); lfs3_mdir_t mdir; lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -2406,7 +2406,7 @@ code = ''' memset(buffer+1, 'b', SIZE-1); lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -2429,7 +2429,7 @@ code = ''' // remove an entry, forcing the mdir to be dropped memset(buffer+1, 'b', SIZE-1); lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => 0; + &mdir, NULL) => LFS3_TAG_REG; // force mdir to compact twice, this should relocate mdir.r.eoff = -1; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( @@ -2602,7 +2602,7 @@ code = ''' memset(buffer+1, 'a', SIZE-1); lfs3_mdir_t mdir; lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -2611,7 +2611,7 @@ code = ''' memset(buffer+1, 'b', SIZE-1); lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -2719,10 +2719,10 @@ code = ''' // update mtree lfs3_mdir_t mdir; - int err = lfs3_mtree_namelookup(&lfs3, 0, name+1, 3, - &mdir, NULL, NULL); - assert(!err || err == LFS3_ERR_NOENT); - if (!err) { + lfs3_stag_t tag = lfs3_mtree_namelookup(&lfs3, 0, name+1, 3, + &mdir, NULL); + assert(tag >= 0 || tag == LFS3_ERR_NOENT); + if (tag != LFS3_ERR_NOENT) { continue; } // force a compaction? @@ -2747,10 +2747,10 @@ code = ''' // update mtree lfs3_mdir_t mdir; - int err = lfs3_mtree_namelookup(&lfs3, 0, name+1, 3, - &mdir, NULL, NULL); - assert(!err || err == LFS3_ERR_NOENT); - if (err == LFS3_ERR_NOENT) { + lfs3_stag_t tag = lfs3_mtree_namelookup(&lfs3, 0, name+1, 3, + &mdir, NULL); + assert(tag >= 0 || tag == LFS3_ERR_NOENT); + if (tag == LFS3_ERR_NOENT) { continue; } // force a compaction? @@ -2778,10 +2778,10 @@ code = ''' // update mtree lfs3_mdir_t mdir; - int err = lfs3_mtree_namelookup(&lfs3, 0, name+1, 3, - &mdir, NULL, NULL); - assert(!err || err == LFS3_ERR_NOENT); - if (err == LFS3_ERR_NOENT) { + lfs3_stag_t tag = lfs3_mtree_namelookup(&lfs3, 0, name+1, 3, + &mdir, NULL); + assert(tag >= 0 || tag == LFS3_ERR_NOENT); + if (tag == LFS3_ERR_NOENT) { continue; } // force a compaction? @@ -2808,14 +2808,14 @@ code = ''' sprintf(name+1, "%03x", i); if (sim[i]) { lfs3_mtree_namelookup(&lfs3, 0, name+1, 3, - &mdir, NULL, NULL) => 0; + &mdir, NULL) => LFS3_TAG_REG; lfs3_mdir_lookup(&lfs3, &mdir, LFS3_TAG_REG, &data) => LFS3_TAG_REG; lfs3_data_read(&lfs3, &data, buffer, sizeof(buffer)) => 4; assert(memcmp(buffer, name, 4) == 0); } else { lfs3_mtree_namelookup(&lfs3, 0, name+1, 3, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; } } @@ -2834,14 +2834,14 @@ code = ''' sprintf(name+1, "%03x", i); if (sim[i]) { lfs3_mtree_namelookup(&lfs3, 0, name+1, 3, - &mdir, NULL, NULL) => 0; + &mdir, NULL) => LFS3_TAG_REG; lfs3_mdir_lookup(&lfs3, &mdir, LFS3_TAG_REG, &data) => LFS3_TAG_REG; lfs3_data_read(&lfs3, &data, buffer, sizeof(buffer)) => 4; assert(memcmp(buffer, name, 4) == 0); } else { lfs3_mtree_namelookup(&lfs3, 0, name+1, 3, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; } } @@ -2862,7 +2862,7 @@ code = ''' // setup our neighbors lfs3_omdir_t left = {.flags=0}; lfs3_mtree_namelookup(&lfs3, 0, "a", 1, - &left.mdir, NULL, NULL) => LFS3_ERR_NOENT; + &left.mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &left.mdir, LFS3_RATTRS( LFS3_RATTR_NAME(LFS3_TAG_REG, +1, 0, "a", 1))) => 0; assert(left.mdir.r.weight == 2); @@ -2870,7 +2870,7 @@ code = ''' lfs3_omdir_t right = {.flags=0}; lfs3_mtree_namelookup(&lfs3, 0, "c", 1, - &right.mdir, NULL, NULL) => LFS3_ERR_NOENT; + &right.mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &right.mdir, LFS3_RATTRS( LFS3_RATTR_NAME(LFS3_TAG_REG, +1, 0, "c", 1))) => 0; assert(right.mdir.r.weight == 3); @@ -2879,7 +2879,7 @@ code = ''' // insert a new entry, this should update our neighbors lfs3_mdir_t mdir; lfs3_mtree_namelookup(&lfs3, 0, "b", 1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME(LFS3_TAG_REG, +1, 0, "b", 1))) => 0; assert(mdir.r.weight == 4); @@ -2894,13 +2894,13 @@ code = ''' // assert that our neighbors were updated correctly lfs3_mtree_namelookup(&lfs3, 0, "a", 1, - &mdir, NULL, NULL) => 0; + &mdir, NULL) => LFS3_TAG_REG; assert(left.mdir.mid == mdir.mid); assert(lfs3_mdir_cmp(&left.mdir, &mdir) == 0); assert(left.mdir.r.trunk == mdir.r.trunk); assert(left.mdir.r.cksum == mdir.r.cksum); lfs3_mtree_namelookup(&lfs3, 0, "c", 1, - &mdir, NULL, NULL) => 0; + &mdir, NULL) => LFS3_TAG_REG; assert(right.mdir.mid == mdir.mid); assert(lfs3_mdir_cmp(&right.mdir, &mdir) == 0); assert(right.mdir.r.trunk == mdir.r.trunk); @@ -2922,7 +2922,7 @@ code = ''' // setup our neighbors lfs3_omdir_t left = {.flags=0}; lfs3_mtree_namelookup(&lfs3, 0, "a", 1, - &left.mdir, NULL, NULL) => LFS3_ERR_NOENT; + &left.mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &left.mdir, LFS3_RATTRS( LFS3_RATTR_NAME(LFS3_TAG_REG, +1, 0, "a", 1))) => 0; assert(left.mdir.r.weight == 2); @@ -2930,7 +2930,7 @@ code = ''' lfs3_omdir_t right = {.flags=0}; lfs3_mtree_namelookup(&lfs3, 0, "b", 1, - &right.mdir, NULL, NULL) => LFS3_ERR_NOENT; + &right.mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &right.mdir, LFS3_RATTRS( LFS3_RATTR_NAME(LFS3_TAG_REG, +1, 0, "b", 1))) => 0; assert(right.mdir.r.weight == 3); @@ -2939,18 +2939,18 @@ code = ''' // try removing left neighbor lfs3_mdir_t mdir; lfs3_mtree_namelookup(&lfs3, 0, "a", 1, - &mdir, NULL, NULL) => 0; + &mdir, NULL) => LFS3_TAG_REG; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR(LFS3_TAG_RM, -1))) => 0; assert(mdir.r.weight == 2); // assert neighbor was removed lfs3_mtree_namelookup(&lfs3, 0, "a", 1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; // assert that our neighbors were updated correctly lfs3_mtree_namelookup(&lfs3, 0, "b", 1, - &mdir, NULL, NULL) => 0; + &mdir, NULL) => LFS3_TAG_REG; assert(right.mdir.mid == mdir.mid); assert(lfs3_mdir_cmp(&right.mdir, &mdir) == 0); assert(right.mdir.r.trunk == mdir.r.trunk); @@ -2972,7 +2972,7 @@ code = ''' // setup our neighbors lfs3_omdir_t left = {.flags=0}; lfs3_mtree_namelookup(&lfs3, 0, "a", 1, - &left.mdir, NULL, NULL) => LFS3_ERR_NOENT; + &left.mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &left.mdir, LFS3_RATTRS( LFS3_RATTR_NAME(LFS3_TAG_REG, +1, 0, "a", 1))) => 0; assert(left.mdir.r.weight == 2); @@ -2980,7 +2980,7 @@ code = ''' lfs3_omdir_t right = {.flags=0}; lfs3_mtree_namelookup(&lfs3, 0, "b", 1, - &right.mdir, NULL, NULL) => LFS3_ERR_NOENT; + &right.mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &right.mdir, LFS3_RATTRS( LFS3_RATTR_NAME(LFS3_TAG_REG, +1, 0, "b", 1))) => 0; assert(right.mdir.r.weight == 3); @@ -2989,18 +2989,18 @@ code = ''' // try removing right neighbor lfs3_mdir_t mdir; lfs3_mtree_namelookup(&lfs3, 0, "b", 1, - &mdir, NULL, NULL) => 0; + &mdir, NULL) => LFS3_TAG_REG; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR(LFS3_TAG_RM, -1))) => 0; assert(mdir.r.weight == 2); // assert neighbor was removed lfs3_mtree_namelookup(&lfs3, 0, "b", 1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; // assert that our neighbors were updated correctly lfs3_mtree_namelookup(&lfs3, 0, "a", 1, - &mdir, NULL, NULL) => 0; + &mdir, NULL) => LFS3_TAG_REG; assert(left.mdir.mid == mdir.mid); assert(lfs3_mdir_cmp(&left.mdir, &mdir) == 0); assert(left.mdir.r.trunk == mdir.r.trunk); @@ -3024,7 +3024,7 @@ code = ''' // setup our neighbors lfs3_omdir_t left = {.flags=0}; lfs3_mtree_namelookup(&lfs3, 0, "a", 1, - &left.mdir, NULL, NULL) => LFS3_ERR_NOENT; + &left.mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &left.mdir, LFS3_RATTRS( LFS3_RATTR_NAME(LFS3_TAG_REG, +1, 0, "a", 1))) => 0; assert(left.mdir.r.weight == 2); @@ -3032,7 +3032,7 @@ code = ''' lfs3_omdir_t right = {.flags=0}; lfs3_mtree_namelookup(&lfs3, 0, "d", 1, - &right.mdir, NULL, NULL) => LFS3_ERR_NOENT; + &right.mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &right.mdir, LFS3_RATTRS( LFS3_RATTR_NAME(LFS3_TAG_REG, +1, 0, "d", 1))) => 0; assert(right.mdir.r.weight == 3); @@ -3044,7 +3044,7 @@ code = ''' memset(buffer+1, 'b', SIZE-1); lfs3_mdir_t mdir; lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -3053,7 +3053,7 @@ code = ''' memset(buffer+1, 'c', SIZE-1); lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -3071,13 +3071,13 @@ code = ''' // assert that our neighbors were updated correctly lfs3_mtree_namelookup(&lfs3, 0, "a", 1, - &mdir, NULL, NULL) => 0; + &mdir, NULL) => LFS3_TAG_REG; assert(left.mdir.mid == mdir.mid); assert(lfs3_mdir_cmp(&left.mdir, &mdir) == 0); assert(left.mdir.r.trunk == mdir.r.trunk); assert(left.mdir.r.cksum == mdir.r.cksum); lfs3_mtree_namelookup(&lfs3, 0, "d", 1, - &mdir, NULL, NULL) => 0; + &mdir, NULL) => LFS3_TAG_REG; assert(right.mdir.mid == mdir.mid); assert(lfs3_mdir_cmp(&right.mdir, &mdir) == 0); assert(right.mdir.r.trunk == mdir.r.trunk); @@ -3101,7 +3101,7 @@ code = ''' // setup our neighbors lfs3_omdir_t left = {.flags=0}; lfs3_mtree_namelookup(&lfs3, 0, "a", 1, - &left.mdir, NULL, NULL) => LFS3_ERR_NOENT; + &left.mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &left.mdir, LFS3_RATTRS( LFS3_RATTR_NAME(LFS3_TAG_REG, +1, 0, "a", 1))) => 0; assert(left.mdir.r.weight == 2); @@ -3109,7 +3109,7 @@ code = ''' lfs3_omdir_t right = {.flags=0}; lfs3_mtree_namelookup(&lfs3, 0, "e", 1, - &right.mdir, NULL, NULL) => LFS3_ERR_NOENT; + &right.mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &right.mdir, LFS3_RATTRS( LFS3_RATTR_NAME(LFS3_TAG_REG, +1, 0, "e", 1))) => 0; assert(right.mdir.r.weight == 3); @@ -3121,7 +3121,7 @@ code = ''' memset(buffer+1, 'b', SIZE-1); lfs3_mdir_t mdir; lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -3130,7 +3130,7 @@ code = ''' memset(buffer+1, 'd', SIZE-1); lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -3144,7 +3144,7 @@ code = ''' // now add another large entry to an mdir, forcing a split memset(buffer+1, 'c', SIZE-1); lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -3162,13 +3162,13 @@ code = ''' // assert that our neighbors were updated correctly lfs3_mtree_namelookup(&lfs3, 0, "a", 1, - &mdir, NULL, NULL) => 0; + &mdir, NULL) => LFS3_TAG_REG; assert(left.mdir.mid == mdir.mid); assert(lfs3_mdir_cmp(&left.mdir, &mdir) == 0); assert(left.mdir.r.trunk == mdir.r.trunk); assert(left.mdir.r.cksum == mdir.r.cksum); lfs3_mtree_namelookup(&lfs3, 0, "e", 1, - &mdir, NULL, NULL) => 0; + &mdir, NULL) => LFS3_TAG_REG; assert(right.mdir.mid == mdir.mid); assert(lfs3_mdir_cmp(&right.mdir, &mdir) == 0); assert(right.mdir.r.trunk == mdir.r.trunk); @@ -3192,7 +3192,7 @@ code = ''' // setup our neighbors lfs3_omdir_t left = {.flags=0}; lfs3_mtree_namelookup(&lfs3, 0, "a", 1, - &left.mdir, NULL, NULL) => LFS3_ERR_NOENT; + &left.mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &left.mdir, LFS3_RATTRS( LFS3_RATTR_NAME(LFS3_TAG_REG, +1, 0, "a", 1))) => 0; assert(left.mdir.r.weight == 2); @@ -3200,7 +3200,7 @@ code = ''' lfs3_omdir_t right = {.flags=0}; lfs3_mtree_namelookup(&lfs3, 0, "b", 1, - &right.mdir, NULL, NULL) => LFS3_ERR_NOENT; + &right.mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &right.mdir, LFS3_RATTRS( LFS3_RATTR_NAME(LFS3_TAG_REG, +1, 0, "b", 1))) => 0; assert(right.mdir.r.weight == 3); @@ -3218,13 +3218,13 @@ code = ''' // assert that our neighbors were updated correctly lfs3_mdir_t mdir; lfs3_mtree_namelookup(&lfs3, 0, "a", 1, - &mdir, NULL, NULL) => 0; + &mdir, NULL) => LFS3_TAG_REG; assert(left.mdir.mid == mdir.mid); assert(lfs3_mdir_cmp(&left.mdir, &mdir) == 0); assert(left.mdir.r.trunk == mdir.r.trunk); assert(left.mdir.r.cksum == mdir.r.cksum); lfs3_mtree_namelookup(&lfs3, 0, "b", 1, - &mdir, NULL, NULL) => 0; + &mdir, NULL) => LFS3_TAG_REG; assert(right.mdir.mid == mdir.mid); assert(lfs3_mdir_cmp(&right.mdir, &mdir) == 0); assert(right.mdir.r.trunk == mdir.r.trunk); @@ -3250,7 +3250,7 @@ code = ''' // setup our neighbors lfs3_omdir_t left = {.flags=0}; lfs3_mtree_namelookup(&lfs3, 0, "a", 1, - &left.mdir, NULL, NULL) => LFS3_ERR_NOENT; + &left.mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &left.mdir, LFS3_RATTRS( LFS3_RATTR_NAME(LFS3_TAG_REG, +1, 0, "a", 1))) => 0; assert(left.mdir.r.weight == 2); @@ -3258,7 +3258,7 @@ code = ''' lfs3_omdir_t right = {.flags=0}; lfs3_mtree_namelookup(&lfs3, 0, "d", 1, - &right.mdir, NULL, NULL) => LFS3_ERR_NOENT; + &right.mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &right.mdir, LFS3_RATTRS( LFS3_RATTR_NAME(LFS3_TAG_REG, +1, 0, "d", 1))) => 0; assert(right.mdir.r.weight == 3); @@ -3270,7 +3270,7 @@ code = ''' memset(buffer+1, 'b', SIZE-1); lfs3_mdir_t mdir; lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -3279,7 +3279,7 @@ code = ''' memset(buffer+1, 'c', SIZE-1); lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -3298,7 +3298,7 @@ code = ''' // force mdir to compact twice, this should relocate memset(buffer+1, 'b', SIZE-1); lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => 0; + &mdir, NULL) => LFS3_TAG_REG; lfs3_mdir_t old_mdir = mdir; mdir.r.eoff = -1; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( @@ -3315,13 +3315,13 @@ code = ''' // assert that our neighbors were updated correctly lfs3_mtree_namelookup(&lfs3, 0, "a", 1, - &mdir, NULL, NULL) => 0; + &mdir, NULL) => LFS3_TAG_REG; assert(left.mdir.mid == mdir.mid); assert(lfs3_mdir_cmp(&left.mdir, &mdir) == 0); assert(left.mdir.r.trunk == mdir.r.trunk); assert(left.mdir.r.cksum == mdir.r.cksum); lfs3_mtree_namelookup(&lfs3, 0, "d", 1, - &mdir, NULL, NULL) => 0; + &mdir, NULL) => LFS3_TAG_REG; assert(right.mdir.mid == mdir.mid); assert(lfs3_mdir_cmp(&right.mdir, &mdir) == 0); assert(right.mdir.r.trunk == mdir.r.trunk); @@ -3347,7 +3347,7 @@ code = ''' // setup our neighbors lfs3_omdir_t left = {.flags=0}; lfs3_mtree_namelookup(&lfs3, 0, "a", 1, - &left.mdir, NULL, NULL) => LFS3_ERR_NOENT; + &left.mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &left.mdir, LFS3_RATTRS( LFS3_RATTR_NAME(LFS3_TAG_REG, +1, 0, "a", 1))) => 0; assert(left.mdir.r.weight == 2); @@ -3355,7 +3355,7 @@ code = ''' lfs3_omdir_t right = {.flags=0}; lfs3_mtree_namelookup(&lfs3, 0, "d", 1, - &right.mdir, NULL, NULL) => LFS3_ERR_NOENT; + &right.mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &right.mdir, LFS3_RATTRS( LFS3_RATTR_NAME(LFS3_TAG_REG, +1, 0, "d", 1))) => 0; assert(right.mdir.r.weight == 3); @@ -3367,7 +3367,7 @@ code = ''' memset(buffer+1, 'b', SIZE-1); lfs3_mdir_t mdir; lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -3376,7 +3376,7 @@ code = ''' memset(buffer+1, 'c', SIZE-1); lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -3395,7 +3395,7 @@ code = ''' // force mdir to compact twice, this should relocate memset(buffer+1, 'c', SIZE-1); lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => 0; + &mdir, NULL) => LFS3_TAG_REG; lfs3_mdir_t old_mdir = mdir; mdir.r.eoff = -1; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( @@ -3412,13 +3412,13 @@ code = ''' // assert that our neighbors were updated correctly lfs3_mtree_namelookup(&lfs3, 0, "a", 1, - &mdir, NULL, NULL) => 0; + &mdir, NULL) => LFS3_TAG_REG; assert(left.mdir.mid == mdir.mid); assert(lfs3_mdir_cmp(&left.mdir, &mdir) == 0); assert(left.mdir.r.trunk == mdir.r.trunk); assert(left.mdir.r.cksum == mdir.r.cksum); lfs3_mtree_namelookup(&lfs3, 0, "d", 1, - &mdir, NULL, NULL) => 0; + &mdir, NULL) => LFS3_TAG_REG; assert(right.mdir.mid == mdir.mid); assert(lfs3_mdir_cmp(&right.mdir, &mdir) == 0); assert(right.mdir.r.trunk == mdir.r.trunk); @@ -3442,7 +3442,7 @@ code = ''' // setup our neighbors lfs3_omdir_t left = {.flags=0}; lfs3_mtree_namelookup(&lfs3, 0, "a", 1, - &left.mdir, NULL, NULL) => LFS3_ERR_NOENT; + &left.mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &left.mdir, LFS3_RATTRS( LFS3_RATTR_NAME(LFS3_TAG_REG, +1, 0, "a", 1))) => 0; assert(left.mdir.r.weight == 2); @@ -3450,7 +3450,7 @@ code = ''' lfs3_omdir_t right = {.flags=0}; lfs3_mtree_namelookup(&lfs3, 0, "f", 1, - &right.mdir, NULL, NULL) => LFS3_ERR_NOENT; + &right.mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &right.mdir, LFS3_RATTRS( LFS3_RATTR_NAME(LFS3_TAG_REG, +1, 0, "f", 1))) => 0; assert(right.mdir.r.weight == 3); @@ -3462,7 +3462,7 @@ code = ''' memset(buffer+1, 'b', SIZE-1); lfs3_mdir_t mdir; lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -3471,7 +3471,7 @@ code = ''' memset(buffer+1, 'e', SIZE-1); lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -3485,7 +3485,7 @@ code = ''' // now add another large entry to an mdir, forcing a split memset(buffer+1, 'c', SIZE-1); lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -3504,7 +3504,7 @@ code = ''' // now add _another_ large entry to the middle mdir, forcing another split memset(buffer+1, 'd', SIZE-1); lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -3522,13 +3522,13 @@ code = ''' // assert that our neighbors were updated correctly lfs3_mtree_namelookup(&lfs3, 0, "a", 1, - &mdir, NULL, NULL) => 0; + &mdir, NULL) => LFS3_TAG_REG; assert(left.mdir.mid == mdir.mid); assert(lfs3_mdir_cmp(&left.mdir, &mdir) == 0); assert(left.mdir.r.trunk == mdir.r.trunk); assert(left.mdir.r.cksum == mdir.r.cksum); lfs3_mtree_namelookup(&lfs3, 0, "f", 1, - &mdir, NULL, NULL) => 0; + &mdir, NULL) => LFS3_TAG_REG; assert(right.mdir.mid == mdir.mid); assert(lfs3_mdir_cmp(&right.mdir, &mdir) == 0); assert(right.mdir.r.trunk == mdir.r.trunk); @@ -3552,7 +3552,7 @@ code = ''' // setup our neighbors lfs3_omdir_t left = {.flags=0}; lfs3_mtree_namelookup(&lfs3, 0, "a", 1, - &left.mdir, NULL, NULL) => LFS3_ERR_NOENT; + &left.mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &left.mdir, LFS3_RATTRS( LFS3_RATTR_NAME(LFS3_TAG_REG, +1, 0, "a", 1))) => 0; assert(left.mdir.r.weight == 2); @@ -3560,7 +3560,7 @@ code = ''' lfs3_omdir_t right = {.flags=0}; lfs3_mtree_namelookup(&lfs3, 0, "e", 1, - &right.mdir, NULL, NULL) => LFS3_ERR_NOENT; + &right.mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &right.mdir, LFS3_RATTRS( LFS3_RATTR_NAME(LFS3_TAG_REG, +1, 0, "e", 1))) => 0; assert(right.mdir.r.weight == 3); @@ -3572,7 +3572,7 @@ code = ''' memset(buffer+1, 'b', SIZE-1); lfs3_mdir_t mdir; lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -3581,7 +3581,7 @@ code = ''' memset(buffer+1, 'd', SIZE-1); lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -3595,7 +3595,7 @@ code = ''' // now add another large entry to an mdir, forcing a split memset(buffer+1, 'c', SIZE-1); lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -3623,13 +3623,13 @@ code = ''' // assert that our neighbors were updated correctly lfs3_mtree_namelookup(&lfs3, 0, "a", 1, - &mdir, NULL, NULL) => 0; + &mdir, NULL) => LFS3_TAG_REG; assert(left.mdir.mid == mdir.mid); assert(lfs3_mdir_cmp(&left.mdir, &mdir) == 0); assert(left.mdir.r.trunk == mdir.r.trunk); assert(left.mdir.r.cksum == mdir.r.cksum); lfs3_mtree_namelookup(&lfs3, 0, "e", 1, - &mdir, NULL, NULL) => 0; + &mdir, NULL) => LFS3_TAG_REG; assert(right.mdir.mid == mdir.mid); assert(lfs3_mdir_cmp(&right.mdir, &mdir) == 0); assert(right.mdir.r.trunk == mdir.r.trunk); @@ -3656,7 +3656,7 @@ code = ''' // insert at least one entry lfs3_mdir_t mdir; lfs3_mtree_namelookup(&lfs3, 0, "a", 1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME(LFS3_TAG_REG, +1, 0, "a", 1))) => 0; assert(mdir.r.weight == 2); @@ -3727,7 +3727,7 @@ code = ''' // assert that our entry is still in the mtree uint8_t buffer[256]; lfs3_mtree_namelookup(&lfs3, 0, "a", 1, - &mdir, NULL, NULL) => 0; + &mdir, NULL) => LFS3_TAG_REG; lfs3_mdir_lookup(&lfs3, &mdir, LFS3_TAG_REG, &data) => LFS3_TAG_REG; lfs3_data_read(&lfs3, &data, buffer, sizeof(buffer)) => 2; @@ -3739,7 +3739,7 @@ code = ''' // assert that our entry is still in the mtree lfs3_mtree_namelookup(&lfs3, 0, "a", 1, - &mdir, NULL, NULL) => 0; + &mdir, NULL) => LFS3_TAG_REG; lfs3_mdir_lookup(&lfs3, &mdir, LFS3_TAG_REG, &data) => LFS3_TAG_REG; lfs3_data_read(&lfs3, &data, buffer, sizeof(buffer)) => 2; @@ -3906,7 +3906,7 @@ code = ''' memset(buffer+1, 'a', SIZE-1); lfs3_mdir_t mdir; lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -3915,7 +3915,7 @@ code = ''' memset(buffer+1, 'b', SIZE-1); lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -4058,7 +4058,7 @@ code = ''' memset(buffer+1, 'a', SIZE-1); lfs3_mdir_t mdir; lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -4067,7 +4067,7 @@ code = ''' memset(buffer+1, 'b', SIZE-1); lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -4086,7 +4086,7 @@ code = ''' // now add another large entry to an mdir, forcing a split memset(buffer+1, 'c', SIZE-1); lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -4239,7 +4239,7 @@ code = ''' // insert at least one entry lfs3_mdir_t mdir; lfs3_mtree_namelookup(&lfs3, 0, "a", 1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME(LFS3_TAG_REG, +1, 0, "a", 1))) => 0; assert(mdir.r.weight == 2); @@ -4322,7 +4322,7 @@ code = ''' // assert that our entry is still in the mtree uint8_t buffer[256]; lfs3_mtree_namelookup(&lfs3, 0, "a", 1, - &mdir, NULL, NULL) => 0; + &mdir, NULL) => LFS3_TAG_REG; lfs3_mdir_lookup(&lfs3, &mdir, LFS3_TAG_REG, &data) => LFS3_TAG_REG; lfs3_data_read(&lfs3, &data, buffer, sizeof(buffer)) => 2; @@ -4334,7 +4334,7 @@ code = ''' // assert that our entry is still in the mtree lfs3_mtree_namelookup(&lfs3, 0, "a", 1, - &mdir, NULL, NULL) => 0; + &mdir, NULL) => LFS3_TAG_REG; lfs3_mdir_lookup(&lfs3, &mdir, LFS3_TAG_REG, &data) => LFS3_TAG_REG; lfs3_data_read(&lfs3, &data, buffer, sizeof(buffer)) => 2; @@ -4362,7 +4362,7 @@ code = ''' sprintf(name+1, "%03x", i); lfs3_mdir_t mdir; lfs3_mtree_namelookup(&lfs3, 0, name+1, 3, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; // force a compaction? if (FORCE_COMPACTION) { lfs3.mroot.r.eoff = -1; @@ -4525,10 +4525,10 @@ code = ''' name[0] = '\0'; sprintf(name+1, "%03x", x); lfs3_mdir_t mdir; - int err = lfs3_mtree_namelookup(&lfs3, 0, name+1, 3, - &mdir, NULL, NULL); - assert(!err || err == LFS3_ERR_NOENT); - if (!err) { + lfs3_stag_t tag = lfs3_mtree_namelookup(&lfs3, 0, name+1, 3, + &mdir, NULL); + assert(tag >= 0 || tag == LFS3_ERR_NOENT); + if (tag != LFS3_ERR_NOENT) { continue; } // force a compaction? @@ -4628,14 +4628,14 @@ code = ''' sprintf(name+1, "%03x", i); if (sim[i]) { lfs3_mtree_namelookup(&lfs3, 0, name+1, 3, - &mdir, NULL, NULL) => 0; + &mdir, NULL) => LFS3_TAG_REG; lfs3_mdir_lookup(&lfs3, &mdir, LFS3_TAG_REG, &data) => LFS3_TAG_REG; lfs3_data_read(&lfs3, &data, buffer, sizeof(buffer)) => 4; assert(memcmp(buffer, name, 4) == 0); } else { lfs3_mtree_namelookup(&lfs3, 0, name+1, 3, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; } } @@ -4654,14 +4654,14 @@ code = ''' sprintf(name+1, "%03x", i); if (sim[i]) { lfs3_mtree_namelookup(&lfs3, 0, name+1, 3, - &mdir, NULL, NULL) => 0; + &mdir, NULL) => LFS3_TAG_REG; lfs3_mdir_lookup(&lfs3, &mdir, LFS3_TAG_REG, &data) => LFS3_TAG_REG; lfs3_data_read(&lfs3, &data, buffer, sizeof(buffer)) => 4; assert(memcmp(buffer, name, 4) == 0); } else { lfs3_mtree_namelookup(&lfs3, 0, name+1, 3, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; } } @@ -5007,7 +5007,7 @@ code = ''' memset(buffer+1, 'a', SIZE-1); lfs3_mdir_t mdir; lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1, @@ -5067,7 +5067,7 @@ code = ''' memset(buffer+1, 'a', SIZE-1); lfs3_mdir_t mdir; lfs3_mtree_namelookup(&lfs3, 0, (const char*)buffer+1, SIZE-1, - &mdir, NULL, NULL) => LFS3_ERR_NOENT; + &mdir, NULL) => LFS3_ERR_NOENT; lfs3_mdir_commit(&lfs3, &mdir, LFS3_RATTRS( LFS3_RATTR_NAME( LFS3_TAG_REG, +1,