/*
* Seed the cached statistics.
*/
- VERIFY(ddt_object_info(ddt, type, class, &doi) == 0);
+ error = ddt_object_info(ddt, type, class, &doi);
+ if (error)
+ return (error);
ddo->ddo_count = ddt_object_count(ddt, type, class);
ddo->ddo_dspace = doi.doi_physical_blocks_512 << 9;
ddt_histogram_t *ddh_total;
/* XXX: Move to a slab */
- ddh_total = kmem_zalloc(sizeof (ddt_histogram_t), KM_SLEEP);
+ ddh_total = kmem_zalloc(sizeof (ddt_histogram_t), KM_PUSHPAGE);
ddt_get_dedup_histogram(spa, ddh_total);
ddt_histogram_stat(dds_total, ddh_total);
kmem_free(ddh_total, sizeof (ddt_histogram_t));
ddt_entry_t *dde;
/* XXX: Move to a slab */
- dde = kmem_zalloc(sizeof (ddt_entry_t), KM_SLEEP);
+ dde = kmem_zalloc(sizeof (ddt_entry_t), KM_PUSHPAGE);
cv_init(&dde->dde_cv, NULL, CV_DEFAULT, NULL);
dde->dde_key = *ddk;
ddt_t *ddt;
/* XXX: Move to a slab */
- ddt = kmem_zalloc(sizeof (*ddt), KM_SLEEP | KM_NODEBUG);
+ ddt = kmem_zalloc(sizeof (*ddt), KM_PUSHPAGE | KM_NODEBUG);
mutex_init(&ddt->ddt_lock, NULL, MUTEX_DEFAULT, NULL);
avl_create(&ddt->ddt_tree, ddt_entry_compare,
return (B_TRUE);
ddt = spa->spa_ddt[BP_GET_CHECKSUM(bp)];
- dde = kmem_alloc(sizeof(ddt_entry_t), KM_SLEEP);
+ dde = kmem_alloc(sizeof(ddt_entry_t), KM_PUSHPAGE);
ddt_key_fill(&(dde->dde_key), bp);