Lines Matching refs:blkid
170 dbuf_hash(void *os, uint64_t obj, uint8_t lvl, uint64_t blkid)
180 crc = (crc >> 8) ^ zfs_crc64_table[(crc ^ (blkid >> 0)) & 0xFF];
181 crc = (crc >> 8) ^ zfs_crc64_table[(crc ^ (blkid >> 8)) & 0xFF];
183 crc ^= (osv>>14) ^ (obj>>16) ^ (blkid>>16);
188 #define DBUF_EQUAL(dbuf, os, obj, level, blkid) \
192 (dbuf)->db_blkid == (blkid))
195 dbuf_find(objset_t *os, uint64_t obj, uint8_t level, uint64_t blkid)
198 uint64_t hv = dbuf_hash(os, obj, level, blkid);
204 if (DBUF_EQUAL(db, os, obj, level, blkid)) {
248 uint64_t blkid = db->db_blkid;
249 uint64_t hv = dbuf_hash(os, obj, level, blkid);
255 if (DBUF_EQUAL(dbf, os, obj, level, blkid)) {
418 * (i.e. it's objset, object, level and blkid fields don't change).
875 * The level n blkid is equal to the level 0 blkid divided by
878 * The level 0 blkid is offset >> datablkshift =
886 * Thus, the level n blkid is: offset /
2142 dbuf_findbp(dnode_t *dn, int level, uint64_t blkid, int fail_sparse,
2150 ASSERT(blkid != DMU_BONUS_BLKID);
2152 if (blkid == DMU_SPILL_BLKID) {
2175 (blkid > (dn->dn_phys->dn_maxblkid >> (level * epbs)))) {
2181 blkid >> epbs, fail_sparse, FALSE, NULL, parentp);
2192 (blkid & ((1ULL << epbs) - 1));
2198 blkid < dn->dn_phys->dn_nblkptr);
2203 *bpp = &dn->dn_phys->dn_blkptr[blkid];
2209 dbuf_create(dnode_t *dn, uint8_t level, uint64_t blkid,
2223 db->db_blkid = blkid;
2235 if (blkid == DMU_BONUS_BLKID) {
2245 } else if (blkid == DMU_SPILL_BLKID) {
2403 dbuf_prefetch(dnode_t *dn, int64_t level, uint64_t blkid, zio_priority_t prio,
2410 ASSERT(blkid != DMU_BONUS_BLKID);
2413 if (blkid > dn->dn_maxblkid)
2416 if (dnode_block_freed(dn, blkid))
2428 if (dn->dn_phys->dn_maxblkid < blkid << (epbs * level))
2432 level, blkid);
2448 curblkid = blkid;
2482 dn->dn_object, level, blkid);
2499 ASSERT3U(curblkid, ==, blkid);
2525 dbuf_hold_impl(dnode_t *dn, uint8_t level, uint64_t blkid,
2531 ASSERT(blkid != DMU_BONUS_BLKID);
2538 db = dbuf_find(dn->dn_objset, dn->dn_object, level, blkid);
2548 err = dbuf_findbp(dn, level, blkid, fail_sparse, &parent, &bp);
2560 db = dbuf_create(dn, level, blkid, parent, bp);
2609 ASSERT3U(db->db_blkid, ==, blkid);
2617 dbuf_hold(dnode_t *dn, uint64_t blkid, void *tag)
2619 return (dbuf_hold_level(dn, 0, blkid, tag));
2623 dbuf_hold_level(dnode_t *dn, int level, uint64_t blkid, void *tag)
2626 int err = dbuf_hold_impl(dn, level, blkid, FALSE, FALSE, tag, &db);
2678 dbuf_try_add_ref(dmu_buf_t *db_fake, objset_t *os, uint64_t obj, uint64_t blkid,
2688 found_db = dbuf_find(os, obj, 0, blkid);