| 724 | } |
| 725 | |
| 726 | static uint64_t |
| 727 | zap_create_impl(objset_t *os, int normflags, zap_flags_t flags, |
| 728 | dmu_object_type_t ot, int leaf_blockshift, int indirect_blockshift, |
| 729 | dmu_object_type_t bonustype, int bonuslen, int dnodesize, |
| 730 | dnode_t **allocated_dnode, void *tag, dmu_tx_t *tx) |
| 731 | { |
| 732 | uint64_t obj; |
| 733 | |
| 734 | ASSERT3U(DMU_OT_BYTESWAP(ot), ==, DMU_BSWAP_ZAP); |
| 735 | |
| 736 | if (allocated_dnode == NULL) { |
| 737 | dnode_t *dn; |
| 738 | obj = dmu_object_alloc_hold(os, ot, 1ULL << leaf_blockshift, |
| 739 | indirect_blockshift, bonustype, bonuslen, dnodesize, |
| 740 | &dn, FTAG, tx); |
| 741 | mzap_create_impl(dn, normflags, flags, tx); |
| 742 | dnode_rele(dn, FTAG); |
| 743 | } else { |
| 744 | obj = dmu_object_alloc_hold(os, ot, 1ULL << leaf_blockshift, |
| 745 | indirect_blockshift, bonustype, bonuslen, dnodesize, |
| 746 | allocated_dnode, tag, tx); |
| 747 | mzap_create_impl(*allocated_dnode, normflags, flags, tx); |
| 748 | } |
| 749 | |
| 750 | return (obj); |
| 751 | } |
| 752 | |
| 753 | int |
| 754 | zap_create_claim(objset_t *os, uint64_t obj, dmu_object_type_t ot, |
no test coverage detected