Lines Matching refs:ddt
127 ddt_hash_append(libzfs_handle_t *hdl, dedup_table_t *ddt, dedup_entry_t **ddepp, in ddt_hash_append() argument
132 if (ddt->cur_ddt_size >= ddt->max_ddt_size) { in ddt_hash_append()
133 if (ddt->ddt_full == B_FALSE) { in ddt_hash_append()
137 ddt->ddt_full = B_TRUE; in ddt_hash_append()
142 if ((dde = umem_cache_alloc(ddt->ddecache, UMEM_DEFAULT)) in ddt_hash_append()
150 ddt->cur_ddt_size += sizeof (dedup_entry_t); in ddt_hash_append()
151 ddt->ddt_count++; in ddt_hash_append()
165 ddt_update(libzfs_handle_t *hdl, dedup_table_t *ddt, zio_cksum_t *cs, in ddt_update() argument
171 hashcode = BF64_GET(cs->zc_word[0], 0, ddt->numhashbits); in ddt_update()
173 for (ddepp = &(ddt->dedup_hash_array[hashcode]); *ddepp != NULL; in ddt_update()
181 ddt_hash_append(hdl, ddt, ddepp, cs, prop, dr); in ddt_update()
291 dedup_table_t ddt; in cksummer() local
296 ddt.max_ddt_size = in cksummer()
300 numbuckets = ddt.max_ddt_size / (sizeof (dedup_entry_t)); in cksummer()
309 ddt.dedup_hash_array = calloc(numbuckets, sizeof (dedup_entry_t *)); in cksummer()
310 ddt.ddecache = umem_cache_create("dde", sizeof (dedup_entry_t), 0, in cksummer()
312 ddt.cur_ddt_size = numbuckets * sizeof (dedup_entry_t *); in cksummer()
313 ddt.numhashbits = high_order_bit(numbuckets) - 1; in cksummer()
314 ddt.ddt_full = B_FALSE; in cksummer()
434 if (ddt_update(dda->dedup_hdl, &ddt, in cksummer()
504 umem_cache_destroy(ddt.ddecache); in cksummer()
505 free(ddt.dedup_hash_array); in cksummer()