Skip to content

Commit a178fad

Browse files
committed
Move tdb_get_blk() to tdb_alloc_blk()
Few `tdb_get_blk()` moved to `tdb_alloc_blk()`, however we still use `tdb_get_blk()` outside block allocation.
1 parent 9c2c6eb commit a178fad

File tree

1 file changed

+9
-12
lines changed

1 file changed

+9
-12
lines changed

db/core/htrie.c

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -382,7 +382,9 @@ tdb_alloc_blk(TdbHdr *dbh)
382382
* This is only for first blocks in extents, so we lose only
383383
* TDB_HTRIE_MINDREC - L1_CACHE_BYTES per extent.
384384
*/
385-
return TDB_HTRIE_DALIGN(rptr);
385+
rptr = TDB_HTRIE_DALIGN(rptr);
386+
tdb_get_blk(dbh, rptr);
387+
return rptr;
386388
}
387389

388390
static void
@@ -414,6 +416,7 @@ tdb_alloc_blk_freelist(TdbHdr *dbh)
414416
next = TDB_PTR(dbh, rptr);
415417
this_cpu_ptr(dbh->pcpu)->freelist = *next;
416418

419+
tdb_get_blk(dbh, rptr);
417420
return rptr;
418421
}
419422

@@ -465,7 +468,6 @@ tdb_alloc_data(TdbHdr *dbh, size_t *len)
465468
goto out;
466469

467470
BUG_ON(old_rptr == 0);
468-
tdb_get_blk(dbh, rptr);
469471
tdb_put_blk(dbh, old_rptr);
470472

471473
max_data_len = TDB_BLK_SZ - (rptr & ~TDB_BLK_MASK);
@@ -492,6 +494,9 @@ tdb_alloc_data(TdbHdr *dbh, size_t *len)
492494

493495
/**
494496
* Allocates a new bucket.
497+
*
498+
* Never do tdb_htrie_put_rec with bucket block, buckets live forever.
499+
*
495500
* @return byte offset of the block.
496501
*/
497502
static unsigned long
@@ -515,9 +520,6 @@ tdb_alloc_bucket(TdbHdr *dbh)
515520
rptr = tdb_alloc_blk(dbh);
516521
if (!rptr)
517522
goto out;
518-
519-
/* Never put bucket block, buckets live forever */
520-
tdb_get_blk(dbh, rptr);
521523
}
522524

523525
TDB_DBG("alloc bucket %#lx\n", rptr);
@@ -534,6 +536,8 @@ tdb_alloc_bucket(TdbHdr *dbh)
534536

535537
/**
536538
* Allocates a new index block.
539+
*
540+
* Never do tdb_htrie_put_rec with index block, indexes live forever.
537541
* @return byte offset of the block.
538542
*/
539543
static unsigned long
@@ -556,9 +560,6 @@ tdb_alloc_index(TdbHdr *dbh)
556560
rptr = tdb_alloc_blk(dbh);
557561
if (!rptr)
558562
goto out;
559-
560-
/* Never put index block, indexes live forever */
561-
tdb_get_blk(dbh, rptr);
562563
}
563564

564565
TDB_DBG("alloc iblk %#lx\n", rptr);
@@ -662,7 +663,6 @@ tdb_htrie_burst(TdbHdr *dbh, TdbHtrieNode **node, TdbBucket *bckt,
662663
if (!n)
663664
return -ENOMEM;
664665
new_in = TDB_PTR(dbh, n);
665-
tdb_get_blk(dbh, n);
666666
new_in_idx = TDB_O2II(n);
667667

668668
/* We must not burst empty bucket, just reuse it. */
@@ -1367,9 +1367,6 @@ tdb_htrie_init(void *p, size_t db_size, unsigned int rec_len)
13671367
p->b_wcl = tdb_alloc_blk(hdr);
13681368
p->i_wcl = tdb_alloc_blk(hdr);
13691369
p->d_wcl = tdb_alloc_blk(hdr);
1370-
tdb_get_blk(hdr, p->b_wcl & TDB_BLK_MASK);
1371-
tdb_get_blk(hdr, p->i_wcl & TDB_BLK_MASK);
1372-
tdb_get_blk(hdr, p->d_wcl & TDB_BLK_MASK);
13731370
}
13741371

13751372
TDB_DBG("init db header: nwb=%llu db_size=%lu rec_len=%u\n",

0 commit comments

Comments
 (0)