Lines Matching defs:ddt
58 #include <sys/ddt.h>
131 ddt_hash_append(libzfs_handle_t *hdl, dedup_table_t *ddt, dedup_entry_t **ddepp,
136 if (ddt->cur_ddt_size >= ddt->max_ddt_size) {
137 if (ddt->ddt_full == B_FALSE) {
141 ddt->ddt_full = B_TRUE;
146 if ((dde = umem_cache_alloc(ddt->ddecache, UMEM_DEFAULT))
154 ddt->cur_ddt_size += sizeof (dedup_entry_t);
155 ddt->ddt_count++;
169 ddt_update(libzfs_handle_t *hdl, dedup_table_t *ddt, zio_cksum_t *cs,
175 hashcode = BF64_GET(cs->zc_word[0], 0, ddt->numhashbits);
177 for (ddepp = &(ddt->dedup_hash_array[hashcode]); *ddepp != NULL;
185 ddt_hash_append(hdl, ddt, ddepp, cs, prop, dr);
240 dedup_table_t ddt;
245 ddt.max_ddt_size =
249 numbuckets = ddt.max_ddt_size / (sizeof (dedup_entry_t));
258 ddt.dedup_hash_array = calloc(numbuckets, sizeof (dedup_entry_t *));
259 ddt.ddecache = umem_cache_create("dde", sizeof (dedup_entry_t), 0,
261 ddt.cur_ddt_size = numbuckets * sizeof (dedup_entry_t *);
262 ddt.numhashbits = high_order_bit(numbuckets) - 1;
263 ddt.ddt_full = B_FALSE;
385 if (ddt_update(dda->dedup_hdl, &ddt,
455 umem_cache_destroy(ddt.ddecache);
456 free(ddt.dedup_hash_array);