Lines Matching full:zap
35 #include <sys/zap.h>
88 zap_getflags(zap_t *zap) in zap_getflags() argument
90 if (zap->zap_ismicro) in zap_getflags()
92 return (zap_f_phys(zap)->zap_flags); in zap_getflags()
96 zap_hashbits(zap_t *zap) in zap_hashbits() argument
98 if (zap_getflags(zap) & ZAP_FLAG_HASH64) in zap_hashbits()
105 zap_maxcd(zap_t *zap) in zap_maxcd() argument
107 if (zap_getflags(zap) & ZAP_FLAG_HASH64) in zap_maxcd()
116 zap_t *zap = zn->zn_zap; in zap_hash() local
119 if (zap_getflags(zap) & ZAP_FLAG_PRE_HASHED_KEY) { in zap_hash()
120 ASSERT(zap_getflags(zap) & ZAP_FLAG_UINT64_KEY); in zap_hash()
123 h = zap->zap_salt; in zap_hash()
127 if (zap_getflags(zap) & ZAP_FLAG_UINT64_KEY) { in zap_hash()
166 h &= ~((1ULL << (64 - zap_hashbits(zap))) - 1); in zap_hash()
172 zap_normalize(zap_t *zap, const char *name, char *namenorm, int normflags, in zap_normalize() argument
175 ASSERT(!(zap_getflags(zap) & ZAP_FLAG_UINT64_KEY)); in zap_normalize()
254 zap_name_alloc(zap_t *zap, boolean_t longname) in zap_name_alloc() argument
259 zn->zn_zap = zap; in zap_name_alloc()
278 zap_t *zap = zn->zn_zap; in zap_name_init_str() local
289 zn->zn_normflags = zap->zap_normflags; in zap_name_init_str()
299 if (zap->zap_normflags) { in zap_name_init_str()
304 if (zap_normalize(zap, key, zn->zn_normbuf, in zap_name_init_str()
305 zap->zap_normflags, zn->zn_normbuf_len) != 0) in zap_name_init_str()
318 if (zap->zap_normflags != zn->zn_normflags) { in zap_name_init_str()
323 if (zap_normalize(zap, key, zn->zn_normbuf, in zap_name_init_str()
333 zap_name_alloc_str(zap_t *zap, const char *key, matchtype_t mt) in zap_name_alloc_str() argument
336 zap_name_t *zn = zap_name_alloc(zap, (key_len > ZAP_MAXNAMELEN)); in zap_name_alloc_str()
345 zap_name_alloc_uint64(zap_t *zap, const uint64_t *key, int numints) in zap_name_alloc_uint64() argument
349 ASSERT0(zap->zap_normflags); in zap_name_alloc_uint64()
350 zn->zn_zap = zap; in zap_name_alloc_uint64()
404 mze_insert(zap_t *zap, uint16_t chunkid, uint64_t hash) in ZFS_BTREE_FIND_IN_BUF_FUNC()
408 ASSERT(zap->zap_ismicro); in ZFS_BTREE_FIND_IN_BUF_FUNC()
409 ASSERT(RW_WRITE_HELD(&zap->zap_rwlock)); in ZFS_BTREE_FIND_IN_BUF_FUNC()
414 ASSERT3U(MZE_PHYS(zap, &mze)->mze_cd, <=, 0xffff); in ZFS_BTREE_FIND_IN_BUF_FUNC()
415 mze.mze_cd = (uint16_t)MZE_PHYS(zap, &mze)->mze_cd; in ZFS_BTREE_FIND_IN_BUF_FUNC()
416 ASSERT(MZE_PHYS(zap, &mze)->mze_name[0] != 0); in ZFS_BTREE_FIND_IN_BUF_FUNC()
417 zfs_btree_add(&zap->zap_m.zap_tree, &mze); in ZFS_BTREE_FIND_IN_BUF_FUNC()
448 mze_find_unused_cd(zap_t *zap, uint64_t hash) in mze_find_unused_cd() argument
452 zfs_btree_t *tree = &zap->zap_m.zap_tree; in mze_find_unused_cd()
454 ASSERT(zap->zap_ismicro); in mze_find_unused_cd()
455 ASSERT(RW_LOCK_HELD(&zap->zap_rwlock)); in mze_find_unused_cd()
488 zap_t *zap = zn->zn_zap; in mze_canfit_fzap_leaf() local
491 zfs_btree_t *tree = &zap->zap_m.zap_tree; in mze_canfit_fzap_leaf()
512 mze_destroy(zap_t *zap) in mze_destroy() argument
514 zfs_btree_clear(&zap->zap_m.zap_tree); in mze_destroy()
515 zfs_btree_destroy(&zap->zap_m.zap_tree); in mze_destroy()
528 zap_t *zap = kmem_zalloc(sizeof (zap_t), KM_SLEEP); in mzap_open() local
529 rw_init(&zap->zap_rwlock, NULL, RW_DEFAULT, NULL); in mzap_open()
530 rw_enter(&zap->zap_rwlock, RW_WRITER); in mzap_open()
531 zap->zap_objset = dmu_buf_get_objset(db); in mzap_open()
532 zap->zap_object = db->db_object; in mzap_open()
533 zap->zap_dbuf = db; in mzap_open()
536 mutex_init(&zap->zap_f.zap_num_entries_mtx, 0, MUTEX_DEFAULT, in mzap_open()
538 zap->zap_f.zap_block_shift = highbit64(db->db_size) - 1; in mzap_open()
544 zap->zap_ismicro = TRUE; in mzap_open()
552 dmu_buf_init_user(&zap->zap_dbu, zap_evict_sync, NULL, &zap->zap_dbuf); in mzap_open()
553 winner = dmu_buf_set_user(db, &zap->zap_dbu); in mzap_open()
558 if (zap->zap_ismicro) { in mzap_open()
559 zap->zap_salt = zap_m_phys(zap)->mz_salt; in mzap_open()
560 zap->zap_normflags = zap_m_phys(zap)->mz_normflags; in mzap_open()
561 zap->zap_m.zap_num_chunks = db->db_size / MZAP_ENT_LEN - 1; in mzap_open()
568 zfs_btree_create_custom(&zap->zap_m.zap_tree, mze_compare, in mzap_open()
571 zap_name_t *zn = zap_name_alloc(zap, B_FALSE); in mzap_open()
572 for (uint16_t i = 0; i < zap->zap_m.zap_num_chunks; i++) { in mzap_open()
574 &zap_m_phys(zap)->mz_chunk[i]; in mzap_open()
576 zap->zap_m.zap_num_entries++; in mzap_open()
578 mze_insert(zap, i, zn->zn_hash); in mzap_open()
583 zap->zap_salt = zap_f_phys(zap)->zap_salt; in mzap_open()
584 zap->zap_normflags = zap_f_phys(zap)->zap_normflags; in mzap_open()
593 ASSERT3P(&ZAP_EMBEDDED_PTRTBL_ENT(zap, 0), >, in mzap_open()
594 &zap_f_phys(zap)->zap_salt); in mzap_open()
600 ASSERT3U((uintptr_t)&ZAP_EMBEDDED_PTRTBL_ENT(zap, in mzap_open()
601 1<<ZAP_EMBEDDED_PTRTBL_SHIFT(zap)) - in mzap_open()
602 (uintptr_t)zap_f_phys(zap), ==, in mzap_open()
603 zap->zap_dbuf->db_size); in mzap_open()
605 rw_exit(&zap->zap_rwlock); in mzap_open()
606 return (zap); in mzap_open()
609 rw_exit(&zap->zap_rwlock); in mzap_open()
610 rw_destroy(&zap->zap_rwlock); in mzap_open()
611 if (!zap->zap_ismicro) in mzap_open()
612 mutex_destroy(&zap->zap_f.zap_num_entries_mtx); in mzap_open()
613 kmem_free(zap, sizeof (zap_t)); in mzap_open()
636 zap_t *zap = dmu_buf_get_user(db); in zap_lockdir_impl() local
637 if (zap == NULL) { in zap_lockdir_impl()
638 zap = mzap_open(db); in zap_lockdir_impl()
639 if (zap == NULL) { in zap_lockdir_impl()
655 krw_t lt = (!zap->zap_ismicro && fatreader) ? RW_READER : lti; in zap_lockdir_impl()
656 rw_enter(&zap->zap_rwlock, lt); in zap_lockdir_impl()
657 if (lt != ((!zap->zap_ismicro && fatreader) ? RW_READER : lti)) { in zap_lockdir_impl()
661 ((!zap->zap_ismicro && fatreader) ? RW_READER : lti)); in zap_lockdir_impl()
662 rw_downgrade(&zap->zap_rwlock); in zap_lockdir_impl()
666 zap->zap_objset = os; in zap_lockdir_impl()
667 zap->zap_dnode = dn; in zap_lockdir_impl()
672 ASSERT3P(zap->zap_dbuf, ==, db); in zap_lockdir_impl()
674 ASSERT(!zap->zap_ismicro || in zap_lockdir_impl()
675 zap->zap_m.zap_num_entries <= zap->zap_m.zap_num_chunks); in zap_lockdir_impl()
676 if (zap->zap_ismicro && tx && adding && in zap_lockdir_impl()
677 zap->zap_m.zap_num_entries == zap->zap_m.zap_num_chunks) { in zap_lockdir_impl()
681 (u_longlong_t)obj, zap->zap_m.zap_num_entries); in zap_lockdir_impl()
682 *zapp = zap; in zap_lockdir_impl()
685 rw_exit(&zap->zap_rwlock); in zap_lockdir_impl()
689 zap->zap_m.zap_num_chunks = in zap_lockdir_impl()
718 *zapp = zap; in zap_lockdir_impl()
767 zap_unlockdir(zap_t *zap, const void *tag) in zap_unlockdir() argument
769 rw_exit(&zap->zap_rwlock); in zap_unlockdir()
770 dnode_rele(zap->zap_dnode, tag); in zap_unlockdir()
771 dmu_buf_rele(zap->zap_dbuf, tag); in zap_unlockdir()
778 zap_t *zap = *zapp; in mzap_upgrade() local
780 ASSERT(RW_WRITE_HELD(&zap->zap_rwlock)); in mzap_upgrade()
782 int sz = zap->zap_dbuf->db_size; in mzap_upgrade()
784 memcpy(mzp, zap->zap_dbuf->db_data, sz); in mzap_upgrade()
785 int nchunks = zap->zap_m.zap_num_chunks; in mzap_upgrade()
788 err = dmu_object_set_blocksize(zap->zap_objset, zap->zap_object, in mzap_upgrade()
797 (u_longlong_t)zap->zap_object, nchunks); in mzap_upgrade()
799 mze_destroy(zap); in mzap_upgrade()
801 fzap_upgrade(zap, tx, flags); in mzap_upgrade()
803 zap_name_t *zn = zap_name_alloc(zap, B_FALSE); in mzap_upgrade()
814 zap = zn->zn_zap; /* fzap_add_cd() may change zap */ in mzap_upgrade()
818 *zapp = zap; in mzap_upgrade()
854 zap_t *zap; in mzap_create_impl() local
855 /* Only fat zap supports flags; upgrade immediately. */ in mzap_create_impl()
858 B_FALSE, B_FALSE, &zap)); in mzap_create_impl()
859 VERIFY0(mzap_upgrade(&zap, FTAG, tx, flags)); in mzap_create_impl()
860 zap_unlockdir(zap, FTAG); in mzap_create_impl()
994 * Create a zap object and return a pointer to the newly allocated dnode via
1024 zap_t *zap = dbu; in zap_evict_sync() local
1026 rw_destroy(&zap->zap_rwlock); in zap_evict_sync()
1028 if (zap->zap_ismicro) in zap_evict_sync()
1029 mze_destroy(zap); in zap_evict_sync()
1031 mutex_destroy(&zap->zap_f.zap_num_entries_mtx); in zap_evict_sync()
1033 kmem_free(zap, sizeof (zap_t)); in zap_evict_sync()
1039 zap_t *zap; in zap_count() local
1042 zap_lockdir(os, zapobj, NULL, RW_READER, TRUE, FALSE, FTAG, &zap); in zap_count()
1045 if (!zap->zap_ismicro) { in zap_count()
1046 err = fzap_count(zap, count); in zap_count()
1048 *count = zap->zap_m.zap_num_entries; in zap_count()
1050 zap_unlockdir(zap, FTAG); in zap_count()
1059 mzap_normalization_conflict(zap_t *zap, zap_name_t *zn, mzap_ent_t *mze, in mzap_normalization_conflict() argument
1066 if (zap->zap_normflags == 0) in mzap_normalization_conflict()
1069 for (other = zfs_btree_prev(&zap->zap_m.zap_tree, idx, &oidx); in mzap_normalization_conflict()
1071 other = zfs_btree_prev(&zap->zap_m.zap_tree, &oidx, &oidx)) { in mzap_normalization_conflict()
1074 zn = zap_name_alloc_str(zap, in mzap_normalization_conflict()
1075 MZE_PHYS(zap, mze)->mze_name, MT_NORMALIZE); in mzap_normalization_conflict()
1078 if (zap_match(zn, MZE_PHYS(zap, other)->mze_name)) { in mzap_normalization_conflict()
1085 for (other = zfs_btree_next(&zap->zap_m.zap_tree, idx, &oidx); in mzap_normalization_conflict()
1087 other = zfs_btree_next(&zap->zap_m.zap_tree, &oidx, &oidx)) { in mzap_normalization_conflict()
1090 zn = zap_name_alloc_str(zap, in mzap_normalization_conflict()
1091 MZE_PHYS(zap, mze)->mze_name, MT_NORMALIZE); in mzap_normalization_conflict()
1094 if (zap_match(zn, MZE_PHYS(zap, other)->mze_name)) { in mzap_normalization_conflict()
1119 zap_lookup_impl(zap_t *zap, const char *name, in zap_lookup_impl() argument
1126 zap_name_t *zn = zap_name_alloc_str(zap, name, mt); in zap_lookup_impl()
1130 if (!zap->zap_ismicro) { in zap_lookup_impl()
1145 MZE_PHYS(zap, mze)->mze_value; in zap_lookup_impl()
1148 MZE_PHYS(zap, mze)->mze_name, in zap_lookup_impl()
1151 *ncp = mzap_normalization_conflict(zap, in zap_lookup_impl()
1167 zap_t *zap; in zap_lookup_norm() local
1170 zap_lockdir(os, zapobj, NULL, RW_READER, TRUE, FALSE, FTAG, &zap); in zap_lookup_norm()
1173 err = zap_lookup_impl(zap, name, integer_size, in zap_lookup_norm()
1175 zap_unlockdir(zap, FTAG); in zap_lookup_norm()
1182 zap_t *zap; in zap_prefetch() local
1186 err = zap_lockdir(os, zapobj, NULL, RW_READER, TRUE, FALSE, FTAG, &zap); in zap_prefetch()
1189 zn = zap_name_alloc_str(zap, name, 0); in zap_prefetch()
1191 zap_unlockdir(zap, FTAG); in zap_prefetch()
1197 zap_unlockdir(zap, FTAG); in zap_prefetch()
1230 zap_t *zap; in zap_lookup_norm_by_dnode() local
1233 FTAG, &zap); in zap_lookup_norm_by_dnode()
1236 err = zap_lookup_impl(zap, name, integer_size, in zap_lookup_norm_by_dnode()
1238 zap_unlockdir(zap, FTAG); in zap_lookup_norm_by_dnode()
1243 zap_prefetch_uint64_impl(zap_t *zap, const uint64_t *key, int key_numints) in zap_prefetch_uint64_impl() argument
1245 zap_name_t *zn = zap_name_alloc_uint64(zap, key, key_numints); in zap_prefetch_uint64_impl()
1247 zap_unlockdir(zap, FTAG); in zap_prefetch_uint64_impl()
1253 zap_unlockdir(zap, FTAG); in zap_prefetch_uint64_impl()
1261 zap_t *zap; in zap_prefetch_uint64() local
1264 zap_lockdir(os, zapobj, NULL, RW_READER, TRUE, FALSE, FTAG, &zap); in zap_prefetch_uint64()
1267 err = zap_prefetch_uint64_impl(zap, key, key_numints); in zap_prefetch_uint64()
1275 zap_t *zap; in zap_prefetch_uint64_by_dnode() local
1278 zap_lockdir_by_dnode(dn, NULL, RW_READER, TRUE, FALSE, FTAG, &zap); in zap_prefetch_uint64_by_dnode()
1281 err = zap_prefetch_uint64_impl(zap, key, key_numints); in zap_prefetch_uint64_by_dnode()
1287 zap_lookup_uint64_impl(zap_t *zap, const uint64_t *key, in zap_lookup_uint64_impl() argument
1290 zap_name_t *zn = zap_name_alloc_uint64(zap, key, key_numints); in zap_lookup_uint64_impl()
1292 zap_unlockdir(zap, FTAG); in zap_lookup_uint64_impl()
1299 zap_unlockdir(zap, FTAG); in zap_lookup_uint64_impl()
1307 zap_t *zap; in zap_lookup_uint64() local
1310 zap_lockdir(os, zapobj, NULL, RW_READER, TRUE, FALSE, FTAG, &zap); in zap_lookup_uint64()
1313 err = zap_lookup_uint64_impl(zap, key, key_numints, integer_size, in zap_lookup_uint64()
1323 zap_t *zap; in zap_lookup_uint64_by_dnode() local
1326 zap_lockdir_by_dnode(dn, NULL, RW_READER, TRUE, FALSE, FTAG, &zap); in zap_lookup_uint64_by_dnode()
1329 err = zap_lookup_uint64_impl(zap, key, key_numints, integer_size, in zap_lookup_uint64_by_dnode()
1349 zap_t *zap; in zap_length() local
1352 zap_lockdir(os, zapobj, NULL, RW_READER, TRUE, FALSE, FTAG, &zap); in zap_length()
1355 zap_name_t *zn = zap_name_alloc_str(zap, name, 0); in zap_length()
1357 zap_unlockdir(zap, FTAG); in zap_length()
1360 if (!zap->zap_ismicro) { in zap_length()
1375 zap_unlockdir(zap, FTAG); in zap_length()
1383 zap_t *zap; in zap_length_uint64() local
1386 zap_lockdir(os, zapobj, NULL, RW_READER, TRUE, FALSE, FTAG, &zap); in zap_length_uint64()
1389 zap_name_t *zn = zap_name_alloc_uint64(zap, key, key_numints); in zap_length_uint64()
1391 zap_unlockdir(zap, FTAG); in zap_length_uint64()
1396 zap_unlockdir(zap, FTAG); in zap_length_uint64()
1403 zap_t *zap = zn->zn_zap; in mzap_addent() local
1404 uint16_t start = zap->zap_m.zap_alloc_next; in mzap_addent()
1406 ASSERT(RW_WRITE_HELD(&zap->zap_rwlock)); in mzap_addent()
1409 for (int i = 0; i < zap->zap_m.zap_num_chunks; i++) { in mzap_addent()
1410 mzap_ent_phys_t *mze = &zap_m_phys(zap)->mz_chunk[i]; in mzap_addent()
1415 uint32_t cd = mze_find_unused_cd(zap, zn->zn_hash); in mzap_addent()
1417 ASSERT(cd < zap_maxcd(zap)); in mzap_addent()
1420 for (uint16_t i = start; i < zap->zap_m.zap_num_chunks; i++) { in mzap_addent()
1421 mzap_ent_phys_t *mze = &zap_m_phys(zap)->mz_chunk[i]; in mzap_addent()
1427 zap->zap_m.zap_num_entries++; in mzap_addent()
1428 zap->zap_m.zap_alloc_next = i+1; in mzap_addent()
1429 if (zap->zap_m.zap_alloc_next == in mzap_addent()
1430 zap->zap_m.zap_num_chunks) in mzap_addent()
1431 zap->zap_m.zap_alloc_next = 0; in mzap_addent()
1432 mze_insert(zap, i, zn->zn_hash); in mzap_addent()
1444 zap_add_impl(zap_t *zap, const char *key, in zap_add_impl() argument
1451 zap_name_t *zn = zap_name_alloc_str(zap, key, 0); in zap_add_impl()
1453 zap_unlockdir(zap, tag); in zap_add_impl()
1456 if (!zap->zap_ismicro) { in zap_add_impl()
1458 zap = zn->zn_zap; /* fzap_add() may change zap */ in zap_add_impl()
1467 zap = zn->zn_zap; /* fzap_add() may change zap */ in zap_add_impl()
1476 ASSERT(zap == zn->zn_zap); in zap_add_impl()
1478 if (zap != NULL) /* may be NULL if fzap_add() failed */ in zap_add_impl()
1479 zap_unlockdir(zap, tag); in zap_add_impl()
1488 zap_t *zap; in zap_add() local
1491 err = zap_lockdir(os, zapobj, tx, RW_WRITER, TRUE, TRUE, FTAG, &zap); in zap_add()
1494 err = zap_add_impl(zap, key, integer_size, num_integers, val, tx, FTAG); in zap_add()
1504 zap_t *zap; in zap_add_by_dnode() local
1507 err = zap_lockdir_by_dnode(dn, tx, RW_WRITER, TRUE, TRUE, FTAG, &zap); in zap_add_by_dnode()
1510 err = zap_add_impl(zap, key, integer_size, num_integers, val, tx, FTAG); in zap_add_by_dnode()
1516 zap_add_uint64_impl(zap_t *zap, const uint64_t *key, in zap_add_uint64_impl() argument
1522 zap_name_t *zn = zap_name_alloc_uint64(zap, key, key_numints); in zap_add_uint64_impl()
1524 zap_unlockdir(zap, tag); in zap_add_uint64_impl()
1528 zap = zn->zn_zap; /* fzap_add() may change zap */ in zap_add_uint64_impl()
1530 if (zap != NULL) /* may be NULL if fzap_add() failed */ in zap_add_uint64_impl()
1531 zap_unlockdir(zap, tag); in zap_add_uint64_impl()
1540 zap_t *zap; in zap_add_uint64() local
1543 zap_lockdir(os, zapobj, tx, RW_WRITER, TRUE, TRUE, FTAG, &zap); in zap_add_uint64()
1546 err = zap_add_uint64_impl(zap, key, key_numints, in zap_add_uint64()
1557 zap_t *zap; in zap_add_uint64_by_dnode() local
1560 zap_lockdir_by_dnode(dn, tx, RW_WRITER, TRUE, TRUE, FTAG, &zap); in zap_add_uint64_by_dnode()
1563 err = zap_add_uint64_impl(zap, key, key_numints, in zap_add_uint64_by_dnode()
1573 zap_t *zap; in zap_update() local
1577 zap_lockdir(os, zapobj, tx, RW_WRITER, TRUE, TRUE, FTAG, &zap); in zap_update()
1580 zap_name_t *zn = zap_name_alloc_str(zap, name, 0); in zap_update()
1582 zap_unlockdir(zap, FTAG); in zap_update()
1585 if (!zap->zap_ismicro) { in zap_update()
1588 zap = zn->zn_zap; /* fzap_update() may change zap */ in zap_update()
1599 zap = zn->zn_zap; /* fzap_update() may change zap */ in zap_update()
1604 MZE_PHYS(zap, mze)->mze_value = *intval; in zap_update()
1609 ASSERT(zap == zn->zn_zap); in zap_update()
1611 if (zap != NULL) /* may be NULL if fzap_upgrade() failed */ in zap_update()
1612 zap_unlockdir(zap, FTAG); in zap_update()
1617 zap_update_uint64_impl(zap_t *zap, const uint64_t *key, int key_numints, in zap_update_uint64_impl() argument
1623 zap_name_t *zn = zap_name_alloc_uint64(zap, key, key_numints); in zap_update_uint64_impl()
1625 zap_unlockdir(zap, tag); in zap_update_uint64_impl()
1629 zap = zn->zn_zap; /* fzap_update() may change zap */ in zap_update_uint64_impl()
1631 if (zap != NULL) /* may be NULL if fzap_upgrade() failed */ in zap_update_uint64_impl()
1632 zap_unlockdir(zap, tag); in zap_update_uint64_impl()
1641 zap_t *zap; in zap_update_uint64() local
1644 zap_lockdir(os, zapobj, tx, RW_WRITER, TRUE, TRUE, FTAG, &zap); in zap_update_uint64()
1647 err = zap_update_uint64_impl(zap, key, key_numints, in zap_update_uint64()
1657 zap_t *zap; in zap_update_uint64_by_dnode() local
1660 zap_lockdir_by_dnode(dn, tx, RW_WRITER, TRUE, TRUE, FTAG, &zap); in zap_update_uint64_by_dnode()
1663 err = zap_update_uint64_impl(zap, key, key_numints, in zap_update_uint64_by_dnode()
1676 zap_remove_impl(zap_t *zap, const char *name, in zap_remove_impl() argument
1681 zap_name_t *zn = zap_name_alloc_str(zap, name, mt); in zap_remove_impl()
1684 if (!zap->zap_ismicro) { in zap_remove_impl()
1692 zap->zap_m.zap_num_entries--; in zap_remove_impl()
1693 memset(MZE_PHYS(zap, mze), 0, sizeof (mzap_ent_phys_t)); in zap_remove_impl()
1694 zfs_btree_remove_idx(&zap->zap_m.zap_tree, &idx); in zap_remove_impl()
1705 zap_t *zap; in zap_remove_norm() local
1708 err = zap_lockdir(os, zapobj, tx, RW_WRITER, TRUE, FALSE, FTAG, &zap); in zap_remove_norm()
1711 err = zap_remove_impl(zap, name, mt, tx); in zap_remove_norm()
1712 zap_unlockdir(zap, FTAG); in zap_remove_norm()
1719 zap_t *zap; in zap_remove_by_dnode() local
1722 err = zap_lockdir_by_dnode(dn, tx, RW_WRITER, TRUE, FALSE, FTAG, &zap); in zap_remove_by_dnode()
1725 err = zap_remove_impl(zap, name, 0, tx); in zap_remove_by_dnode()
1726 zap_unlockdir(zap, FTAG); in zap_remove_by_dnode()
1731 zap_remove_uint64_impl(zap_t *zap, const uint64_t *key, int key_numints, in zap_remove_uint64_impl() argument
1736 zap_name_t *zn = zap_name_alloc_uint64(zap, key, key_numints); in zap_remove_uint64_impl()
1738 zap_unlockdir(zap, tag); in zap_remove_uint64_impl()
1743 zap_unlockdir(zap, tag); in zap_remove_uint64_impl()
1751 zap_t *zap; in zap_remove_uint64() local
1754 zap_lockdir(os, zapobj, tx, RW_WRITER, TRUE, FALSE, FTAG, &zap); in zap_remove_uint64()
1757 err = zap_remove_uint64_impl(zap, key, key_numints, tx, FTAG); in zap_remove_uint64()
1766 zap_t *zap; in zap_remove_uint64_by_dnode() local
1769 zap_lockdir_by_dnode(dn, tx, RW_WRITER, TRUE, FALSE, FTAG, &zap); in zap_remove_uint64_by_dnode()
1772 err = zap_remove_uint64_impl(zap, key, key_numints, tx, FTAG); in zap_remove_uint64_by_dnode()
1837 * Initialize a cursor at the beginning of the ZAP object. The entire
1838 * ZAP object will be prefetched.
1848 * the entire ZAP object.
1972 zap_t *zap; in zap_get_stats() local
1975 zap_lockdir(os, zapobj, NULL, RW_READER, TRUE, FALSE, FTAG, &zap); in zap_get_stats()
1981 if (zap->zap_ismicro) { in zap_get_stats()
1982 zs->zs_blocksize = zap->zap_dbuf->db_size; in zap_get_stats()
1983 zs->zs_num_entries = zap->zap_m.zap_num_entries; in zap_get_stats()
1986 fzap_get_stats(zap, zs); in zap_get_stats()
1988 zap_unlockdir(zap, FTAG); in zap_get_stats()
2046 "Maximum micro ZAP size before converting to a fat ZAP, "