• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-12-stable/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/

Lines Matching defs:level

75 	 * the total size of all dbufs at each level.
170 dnode_t *dn, uint8_t level, uint64_t blkid, boolean_t fail_sparse,
345 #define DBUF_EQUAL(dbuf, os, obj, level, blkid) \
348 (dbuf)->db_level == (level) && \
352 dbuf_find(objset_t *os, uint64_t obj, uint8_t level, uint64_t blkid)
355 uint64_t hv = dbuf_hash(os, obj, level, blkid);
361 if (DBUF_EQUAL(db, os, obj, level, blkid)) {
404 int level = db->db_level;
410 hv = dbuf_hash(os, obj, level, blkid);
416 if (DBUF_EQUAL(dbf, os, obj, level, blkid)) {
629 * (i.e. it's objset, object, level and blkid fields don't change).
1125 * Calculate which level n block references the data at the level 0 offset
1129 dbuf_whichblock(dnode_t *dn, int64_t level, uint64_t offset)
1133 * The level n blkid is equal to the level 0 blkid divided by
1134 * the number of level 0s in a level n block.
1136 * The level 0 blkid is offset >> datablkshift =
1139 * The number of level 0s in a level n is the number of block
1140 * pointers in an indirect block, raised to the power of level.
1141 * This is 2^(indblkshift - SPA_BLKPTRSHIFT)^level =
1142 * 2^(level*(indblkshift - SPA_BLKPTRSHIFT)).
1144 * Thus, the level n blkid is: offset /
1145 * ((2^datablkshift)*(2^(level*(indblkshift - SPA_BLKPTRSHIFT)))
1146 * = offset / 2^(datablkshift + level *
1148 * = offset >> (datablkshift + level *
1151 return (offset >> (dn->dn_datablkshift + level *
1534 * Evict (if its unreferenced) or clear (if its referenced) any level-0
1571 /* found a level 0 buffer in the range */
2425 dbuf_findbp(dnode_t *dn, int level, uint64_t blkid, int fail_sparse,
2450 ASSERT3U(level * epbs, <, 64);
2467 ASSERT(level >= nlevels ||
2468 ((nlevels - level - 1) * epbs) +
2470 if (level >= nlevels ||
2472 ((nlevels - level - 1) * epbs)) ||
2474 blkid > (dn->dn_phys->dn_maxblkid >> (level * epbs)))) {
2477 } else if (level < nlevels-1) {
2481 err = dbuf_hold_impl(dn, level+1,
2500 if (blkid > (dn->dn_phys->dn_maxblkid >> (level * epbs)))
2505 ASSERT3U(level, ==, nlevels-1);
2518 dbuf_create(dnode_t *dn, uint8_t level, uint64_t blkid,
2531 db->db_level = level;
2605 int dpa_curlevel; /* The current level that we're reading */
2725 * Issue prefetch reads for the given block on the given level. If the indirect
2731 dbuf_prefetch(dnode_t *dn, int64_t level, uint64_t blkid, zio_priority_t prio,
2752 if (level >= nlevels || dn->dn_phys->dn_nblkptr == 0)
2756 if (dn->dn_phys->dn_maxblkid < blkid << (epbs * level))
2760 level, blkid);
2775 curlevel = level;
2810 dn->dn_object, level, blkid);
2820 if (DNODE_LEVEL_IS_L2CACHEABLE(dn, level))
2826 * a higher level, though, we want to issue the prefetches for all the
2830 if (curlevel == level) {
2839 if (DNODE_LEVEL_IS_L2CACHEABLE(dn, level))
3004 dbuf_hold_impl(dnode_t *dn, uint8_t level, uint64_t blkid,
3013 __dbuf_hold_impl_init(dh, dn, level, blkid, fail_sparse,
3026 dnode_t *dn, uint8_t level, uint64_t blkid,
3031 dh->dh_level = level;
3056 dbuf_hold_level(dnode_t *dn, int level, uint64_t blkid, void *tag)
3059 int err = dbuf_hold_impl(dn, level, blkid, FALSE, FALSE, tag, &db);
3661 dbuf_sync_list(list_t *list, int level, dmu_tx_t *tx)
3680 VERIFY3U(dr->dr_dbuf->db_level, ==, level);
4160 /* Our parent's buffer is one level closer to the dnode. */