Lines Matching refs:vsd

4537 	struct vsd_node *vsd;  in vsd_destroy()  local
4556 for (vsd = list_head(vsd_list); vsd != NULL; in vsd_destroy()
4557 vsd = list_next(vsd_list, vsd)) { in vsd_destroy()
4561 if (key > vsd->vs_nkeys) in vsd_destroy()
4566 if (vsd->vs_value[k] && vsd_destructor[k]) in vsd_destroy()
4567 (*vsd_destructor[k])(vsd->vs_value[k]); in vsd_destroy()
4571 vsd->vs_value[k] = NULL; in vsd_destroy()
4590 struct vsd_node *vsd; in vsd_get() local
4595 vsd = vp->v_vsd; in vsd_get()
4597 if (key && vsd != NULL && key <= vsd->vs_nkeys) in vsd_get()
4598 return (vsd->vs_value[key - 1]); in vsd_get()
4609 struct vsd_node *vsd; in vsd_set() local
4617 vsd = vp->v_vsd; in vsd_set()
4618 if (vsd == NULL) in vsd_set()
4619 vsd = vp->v_vsd = kmem_zalloc(sizeof (*vsd), KM_SLEEP); in vsd_set()
4628 if (key <= vsd->vs_nkeys) { in vsd_set()
4629 vsd->vs_value[key - 1] = value; in vsd_set()
4635 if (vsd->vs_nkeys == 0) { in vsd_set()
4640 list_insert_head(vsd_list, vsd); in vsd_set()
4647 vsd->vs_value = vsd_realloc(vsd->vs_value, in vsd_set()
4648 vsd->vs_nkeys * sizeof (void *), in vsd_set()
4650 vsd->vs_nkeys = key; in vsd_set()
4651 vsd->vs_value[key - 1] = value; in vsd_set()
4665 struct vsd_node *vsd = vp->v_vsd; in vsd_free() local
4667 if (vsd == NULL) in vsd_free()
4670 if (vsd->vs_nkeys == 0) { in vsd_free()
4671 kmem_free(vsd, sizeof (*vsd)); in vsd_free()
4682 for (i = 0; i < vsd->vs_nkeys; i++) { in vsd_free()
4683 if (vsd->vs_value[i] && vsd_destructor[i]) in vsd_free()
4684 (*vsd_destructor[i])(vsd->vs_value[i]); in vsd_free()
4685 vsd->vs_value[i] = NULL; in vsd_free()
4691 list_remove(vsd_list, vsd); in vsd_free()
4698 kmem_free(vsd->vs_value, vsd->vs_nkeys * sizeof (void *)); in vsd_free()
4699 kmem_free(vsd, sizeof (struct vsd_node)); in vsd_free()