| 781 | } |
| 782 | |
| 783 | static ddt_t * |
| 784 | ddt_table_alloc(spa_t *spa, enum zio_checksum c) |
| 785 | { |
| 786 | ddt_t *ddt; |
| 787 | |
| 788 | ddt = kmem_cache_alloc(ddt_cache, KM_SLEEP); |
| 789 | bzero(ddt, sizeof (ddt_t)); |
| 790 | |
| 791 | mutex_init(&ddt->ddt_lock, NULL, MUTEX_DEFAULT, NULL); |
| 792 | avl_create(&ddt->ddt_tree, ddt_entry_compare, |
| 793 | sizeof (ddt_entry_t), offsetof(ddt_entry_t, dde_node)); |
| 794 | avl_create(&ddt->ddt_repair_tree, ddt_entry_compare, |
| 795 | sizeof (ddt_entry_t), offsetof(ddt_entry_t, dde_node)); |
| 796 | ddt->ddt_checksum = c; |
| 797 | ddt->ddt_spa = spa; |
| 798 | ddt->ddt_os = spa->spa_meta_objset; |
| 799 | |
| 800 | return (ddt); |
| 801 | } |
| 802 | |
| 803 | static void |
| 804 | ddt_table_free(ddt_t *ddt) |
no test coverage detected