MCPcopy Create free account
hub / github.com/F-Stack/f-stack / zap_deref_leaf

Function zap_deref_leaf

freebsd/contrib/openzfs/module/zfs/zap.c:600–625  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

598}
599
600static int
601zap_deref_leaf(zap_t *zap, uint64_t h, dmu_tx_t *tx, krw_t lt, zap_leaf_t **lp)
602{
603 uint64_t blk;
604
605 ASSERT(zap->zap_dbuf == NULL ||
606 zap_f_phys(zap) == zap->zap_dbuf->db_data);
607
608 /* Reality check for corrupt zap objects (leaf or header). */
609 if ((zap_f_phys(zap)->zap_block_type != ZBT_LEAF &&
610 zap_f_phys(zap)->zap_block_type != ZBT_HEADER) ||
611 zap_f_phys(zap)->zap_magic != ZAP_MAGIC) {
612 return (SET_ERROR(EIO));
613 }
614
615 uint64_t idx = ZAP_HASH_IDX(h, zap_f_phys(zap)->zap_ptrtbl.zt_shift);
616 int err = zap_idx_to_blk(zap, idx, &blk);
617 if (err != 0)
618 return (err);
619 err = zap_get_leaf_byblk(zap, blk, tx, lt, lp);
620
621 ASSERT(err ||
622 ZAP_HASH_IDX(h, zap_leaf_phys(*lp)->l_hdr.lh_prefix_len) ==
623 zap_leaf_phys(*lp)->l_hdr.lh_prefix);
624 return (err);
625}
626
627static int
628zap_expand_leaf(zap_name_t *zn, zap_leaf_t *l,

Callers 7

zap_expand_leafFunction · 0.85
fzap_lookupFunction · 0.85
fzap_add_cdFunction · 0.85
fzap_updateFunction · 0.85
fzap_lengthFunction · 0.85
fzap_removeFunction · 0.85
fzap_cursor_retrieveFunction · 0.85

Calls 4

zap_f_physFunction · 0.85
zap_idx_to_blkFunction · 0.85
zap_get_leaf_byblkFunction · 0.85
zap_leaf_physFunction · 0.50

Tested by

no test coverage detected