Dropped attr-list from lfsr_mdir/rbyd_compact

Since we don't need this for bshrub/bsprout negotiation, we might as
well drop it to keep concerns separate.

            code          stack
  before:  32980           3008
  after:   32964 (+0.0%)   2984 (-0.5%)
This commit is contained in:
Christopher Haster
2023-12-30 14:49:29 -06:00
parent 724eb02cea
commit 3222fccad2
+51 -59
View File
@@ -3393,11 +3393,11 @@ done:;
}
static int lfsr_rbyd_compact(lfs_t *lfs, lfsr_rbyd_t *rbyd_,
const lfsr_rbyd_t *rbyd,
const lfsr_attr_t *attrs, lfs_size_t attr_count) {
lfsr_srid_t start_rid, lfsr_srid_t end_rid,
const lfsr_rbyd_t *rbyd) {
// append rbyd
int err = lfsr_rbyd_appendcompactrbyd(lfs, rbyd_, false,
-1, -1, rbyd);
start_rid, end_rid, rbyd);
if (err) {
return err;
}
@@ -3408,19 +3408,6 @@ static int lfsr_rbyd_compact(lfs_t *lfs, lfsr_rbyd_t *rbyd_,
return err;
}
// append a commit
err = lfsr_rbyd_appendattrs(lfs, rbyd_, -1, -1,
attrs, attr_count);
if (err) {
return err;
}
// append a cksum, finalizing the commit
err = lfsr_rbyd_appendcksum(lfs, rbyd_);
if (err) {
return err;
}
return 0;
}
@@ -4229,14 +4216,8 @@ static lfs_ssize_t lfsr_btree_commit_(lfs_t *lfs,
}
// try to compact
err = lfsr_rbyd_appendcompactrbyd(lfs, &rbyd_, false,
-1, -1, &rbyd);
if (err) {
LFS_ASSERT(err != LFS_ERR_RANGE);
return err;
}
err = lfsr_rbyd_appendcompaction(lfs, &rbyd_, false, 0);
err = lfsr_rbyd_compact(lfs, &rbyd_, -1, -1,
&rbyd);
if (err) {
LFS_ASSERT(err != LFS_ERR_RANGE);
return err;
@@ -4277,14 +4258,8 @@ static lfs_ssize_t lfsr_btree_commit_(lfs_t *lfs,
}
// copy over tags < split_rid
err = lfsr_rbyd_appendcompactrbyd(lfs, &rbyd_, false,
-1, split_rid, &rbyd);
if (err) {
LFS_ASSERT(err != LFS_ERR_RANGE);
return err;
}
err = lfsr_rbyd_appendcompaction(lfs, &rbyd_, false, 0);
err = lfsr_rbyd_compact(lfs, &rbyd_, -1, split_rid,
&rbyd);
if (err) {
LFS_ASSERT(err != LFS_ERR_RANGE);
return err;
@@ -4309,14 +4284,8 @@ static lfs_ssize_t lfsr_btree_commit_(lfs_t *lfs,
}
// copy over tags >= split_rid
err = lfsr_rbyd_appendcompactrbyd(lfs, &sibling, false,
split_rid, -1, &rbyd);
if (err) {
LFS_ASSERT(err != LFS_ERR_RANGE);
return err;
}
err = lfsr_rbyd_appendcompaction(lfs, &sibling, false, 0);
err = lfsr_rbyd_compact(lfs, &sibling, split_rid, -1,
&rbyd);
if (err) {
LFS_ASSERT(err != LFS_ERR_RANGE);
return err;
@@ -4923,13 +4892,24 @@ evict:;
return err;
}
err = lfsr_rbyd_compact(lfs, &bshrub->rbyd_,
&bshrub->rbyd, attrs, attr_count);
err = lfsr_rbyd_compact(lfs, &bshrub->rbyd_, -1, -1,
&bshrub->rbyd);
if (err) {
LFS_ASSERT(err != LFS_ERR_RANGE);
return err;
}
err = lfsr_rbyd_appendattrs(lfs, &bshrub->rbyd_, -1, -1,
attrs, attr_count);
if (err) {
return err;
}
err = lfsr_rbyd_appendcksum(lfs, &bshrub->rbyd_);
if (err) {
return err;
}
bshrub->rbyd = bshrub->rbyd_;
LFS_ASSERT(bshrub->rbyd.trunk != 0);
return 0;
@@ -5846,11 +5826,9 @@ static int lfsr_mdir_commit__(lfs_t *lfs, lfsr_mdir_t *mdir,
return 0;
}
// TODO should lfsr_mdir_compact__ also commit the attrs?
static int lfsr_mdir_compact__(lfs_t *lfs, lfsr_mdir_t *mdir_,
lfsr_srid_t start_rid, lfsr_srid_t end_rid,
const lfsr_mdir_t *mdir,
const lfsr_attr_t *attrs, lfs_size_t attr_count) {
const lfsr_mdir_t *mdir) {
// this is basically the same as lfsr_rbyd_compact, but with special
// handling for inlined trees.
//
@@ -6073,17 +6051,6 @@ static int lfsr_mdir_compact__(lfs_t *lfs, lfsr_mdir_t *mdir_,
}
}
// once we've compacted, finish our commit
//
// upper layers should make sure this can't fail by limiting the
// maximum commit size
err = lfsr_mdir_commit__(lfs, mdir_, start_rid, end_rid,
attrs, attr_count);
if (err) {
LFS_ASSERT(err != LFS_ERR_RANGE);
return err;
}
return 0;
}
@@ -6128,7 +6095,18 @@ compact:;
// compact our mdir
err = lfsr_mdir_compact__(lfs, &mdir_, start_rid, end_rid,
mdir, attrs, attr_count);
mdir);
if (err) {
LFS_ASSERT(err != LFS_ERR_RANGE);
return err;
}
// now try to commit again
//
// upper layers should make sure this can't fail by limiting the
// maximum commit size
err = lfsr_mdir_commit__(lfs, &mdir_, start_rid, end_rid,
attrs, attr_count);
if (err) {
LFS_ASSERT(err != LFS_ERR_RANGE);
return err;
@@ -6599,7 +6577,14 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir,
}
err = lfsr_mdir_compact__(lfs, &mdir_, 0, split_rid,
mdir, attrs, attr_count);
mdir);
if (err) {
LFS_ASSERT(err != LFS_ERR_RANGE);
return err;
}
err = lfsr_mdir_commit__(lfs, &mdir_, 0, split_rid,
attrs, attr_count);
if (err) {
LFS_ASSERT(err != LFS_ERR_RANGE);
return err;
@@ -6612,7 +6597,14 @@ static int lfsr_mdir_commit(lfs_t *lfs, lfsr_mdir_t *mdir,
}
err = lfsr_mdir_compact__(lfs, &msibling_, split_rid, -1,
mdir, attrs, attr_count);
mdir);
if (err) {
LFS_ASSERT(err != LFS_ERR_RANGE);
return err;
}
err = lfsr_mdir_commit__(lfs, &msibling_, split_rid, -1,
attrs, attr_count);
if (err) {
LFS_ASSERT(err != LFS_ERR_RANGE);
return err;