| 580 | } |
| 581 | |
| 582 | static int |
| 583 | zap_lockdir_by_dnode(dnode_t *dn, dmu_tx_t *tx, |
| 584 | krw_t lti, boolean_t fatreader, boolean_t adding, void *tag, zap_t **zapp) |
| 585 | { |
| 586 | dmu_buf_t *db; |
| 587 | |
| 588 | int err = dmu_buf_hold_by_dnode(dn, 0, tag, &db, DMU_READ_NO_PREFETCH); |
| 589 | if (err != 0) { |
| 590 | return (err); |
| 591 | } |
| 592 | #ifdef ZFS_DEBUG |
| 593 | { |
| 594 | dmu_object_info_t doi; |
| 595 | dmu_object_info_from_db(db, &doi); |
| 596 | ASSERT3U(DMU_OT_BYTESWAP(doi.doi_type), ==, DMU_BSWAP_ZAP); |
| 597 | } |
| 598 | #endif |
| 599 | |
| 600 | err = zap_lockdir_impl(db, tag, tx, lti, fatreader, adding, zapp); |
| 601 | if (err != 0) { |
| 602 | dmu_buf_rele(db, tag); |
| 603 | } |
| 604 | return (err); |
| 605 | } |
| 606 | |
| 607 | int |
| 608 | zap_lockdir(objset_t *os, uint64_t obj, dmu_tx_t *tx, |
no test coverage detected