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

Function zap_create_leaf

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

Source from the content-addressed store, hash-verified

422}
423
424static zap_leaf_t *
425zap_create_leaf(zap_t *zap, dmu_tx_t *tx)
426{
427 zap_leaf_t *l = kmem_zalloc(sizeof (zap_leaf_t), KM_SLEEP);
428
429 ASSERT(RW_WRITE_HELD(&zap->zap_rwlock));
430
431 rw_init(&l->l_rwlock, NULL, RW_NOLOCKDEP, NULL);
432 rw_enter(&l->l_rwlock, RW_WRITER);
433 l->l_blkid = zap_allocate_blocks(zap, 1);
434 l->l_dbuf = NULL;
435
436 VERIFY0(dmu_buf_hold(zap->zap_objset, zap->zap_object,
437 l->l_blkid << FZAP_BLOCK_SHIFT(zap), NULL, &l->l_dbuf,
438 DMU_READ_NO_PREFETCH));
439 dmu_buf_init_user(&l->l_dbu, zap_leaf_evict_sync, NULL, &l->l_dbuf);
440 VERIFY3P(NULL, ==, dmu_buf_set_user(l->l_dbuf, &l->l_dbu));
441 dmu_buf_will_dirty(l->l_dbuf, tx);
442
443 zap_leaf_init(l, zap->zap_normflags != 0);
444
445 zap_f_phys(zap)->zap_num_leafs++;
446
447 return (l);
448}
449
450int
451fzap_count(zap_t *zap, uint64_t *count)

Callers 1

zap_expand_leafFunction · 0.85

Calls 10

RW_WRITE_HELDFunction · 0.85
rw_initFunction · 0.85
rw_enterFunction · 0.85
zap_allocate_blocksFunction · 0.85
dmu_buf_holdFunction · 0.85
dmu_buf_init_userFunction · 0.85
dmu_buf_set_userFunction · 0.85
dmu_buf_will_dirtyFunction · 0.85
zap_leaf_initFunction · 0.85
zap_f_physFunction · 0.85

Tested by

no test coverage detected