Lines Matching defs:idx_tab
133 static void sa_idx_tab_hold(objset_t *os, sa_idx_tab_t *idx_tab);
1153 sa_idx_tab_t *idx_tab = userp;
1156 ASSERT(idx_tab->sa_variable_lengths);
1157 idx_tab->sa_variable_lengths[length_idx] = length;
1159 TOC_ATTR_ENCODE(idx_tab->sa_idx_tab[attr], length_idx,
1271 sa_idx_tab_t *idx_tab;
1286 idx_tab = sa_find_idx_tab(hdl->sa_os, bonustype, sa_hdr_phys);
1289 hdl->sa_bonus_tab = idx_tab;
1291 hdl->sa_spill_tab = idx_tab;
1308 sa_idx_tab_t *idx_tab = arg;
1310 if (idx_tab == NULL)
1314 if (refcount_remove(&idx_tab->sa_refcount, NULL) == 0) {
1315 list_remove(&idx_tab->sa_layout->lot_idx_tab, idx_tab);
1316 if (idx_tab->sa_variable_lengths)
1317 kmem_free(idx_tab->sa_variable_lengths,
1319 idx_tab->sa_layout->lot_var_sizes);
1320 refcount_destroy(&idx_tab->sa_refcount);
1321 kmem_free(idx_tab->sa_idx_tab,
1323 kmem_free(idx_tab, sizeof (sa_idx_tab_t));
1329 sa_idx_tab_hold(objset_t *os, sa_idx_tab_t *idx_tab)
1334 (void) refcount_add(&idx_tab->sa_refcount, NULL);
1489 sa_idx_tab_t *idx_tab;
1518 for (idx_tab = list_head(&tb->lot_idx_tab); idx_tab;
1519 idx_tab = list_next(&tb->lot_idx_tab, idx_tab)) {
1524 idx_tab->sa_variable_lengths != NULL) {
1527 idx_tab->sa_variable_lengths[i]) {
1534 sa_idx_tab_hold(os, idx_tab);
1535 return (idx_tab);
1540 idx_tab = kmem_zalloc(sizeof (sa_idx_tab_t), KM_SLEEP);
1541 idx_tab->sa_idx_tab =
1543 idx_tab->sa_layout = tb;
1544 refcount_create(&idx_tab->sa_refcount);
1546 idx_tab->sa_variable_lengths = kmem_alloc(sizeof (uint16_t) *
1550 tb, idx_tab);
1551 sa_idx_tab_hold(os, idx_tab); /* one hold for consumer */
1552 sa_idx_tab_hold(os, idx_tab); /* one for layout */
1553 list_insert_tail(&tb->lot_idx_tab, idx_tab);
1554 return (idx_tab);
1658 sa_idx_tab_t *idx_tab;
1713 idx_tab = SA_IDX_TAB_GET(hdl, SA_BONUS);
1723 attr = idx_tab->sa_layout->lot_attrs[i];
1756 (TOC_OFF(idx_tab->sa_idx_tab[attr]) +
1762 idx_tab = SA_IDX_TAB_GET(hdl, SA_SPILL);