Lines Matching refs:vsd

4307 	struct vsd_node *vsd;  in vsd_destroy()  local
4326 for (vsd = list_head(vsd_list); vsd != NULL; in vsd_destroy()
4327 vsd = list_next(vsd_list, vsd)) { in vsd_destroy()
4331 if (key > vsd->vs_nkeys) in vsd_destroy()
4336 if (vsd->vs_value[k] && vsd_destructor[k]) in vsd_destroy()
4337 (*vsd_destructor[k])(vsd->vs_value[k]); in vsd_destroy()
4341 vsd->vs_value[k] = NULL; in vsd_destroy()
4360 struct vsd_node *vsd; in vsd_get() local
4365 vsd = vp->v_vsd; in vsd_get()
4367 if (key && vsd != NULL && key <= vsd->vs_nkeys) in vsd_get()
4368 return (vsd->vs_value[key - 1]); in vsd_get()
4379 struct vsd_node *vsd; in vsd_set() local
4387 vsd = vp->v_vsd; in vsd_set()
4388 if (vsd == NULL) in vsd_set()
4389 vsd = vp->v_vsd = kmem_zalloc(sizeof (*vsd), KM_SLEEP); in vsd_set()
4398 if (key <= vsd->vs_nkeys) { in vsd_set()
4399 vsd->vs_value[key - 1] = value; in vsd_set()
4405 if (vsd->vs_nkeys == 0) { in vsd_set()
4410 list_insert_head(vsd_list, vsd); in vsd_set()
4417 vsd->vs_value = vsd_realloc(vsd->vs_value, in vsd_set()
4418 vsd->vs_nkeys * sizeof (void *), in vsd_set()
4420 vsd->vs_nkeys = key; in vsd_set()
4421 vsd->vs_value[key - 1] = value; in vsd_set()
4435 struct vsd_node *vsd = vp->v_vsd; in vsd_free() local
4437 if (vsd == NULL) in vsd_free()
4440 if (vsd->vs_nkeys == 0) { in vsd_free()
4441 kmem_free(vsd, sizeof (*vsd)); in vsd_free()
4452 for (i = 0; i < vsd->vs_nkeys; i++) { in vsd_free()
4453 if (vsd->vs_value[i] && vsd_destructor[i]) in vsd_free()
4454 (*vsd_destructor[i])(vsd->vs_value[i]); in vsd_free()
4455 vsd->vs_value[i] = NULL; in vsd_free()
4461 list_remove(vsd_list, vsd); in vsd_free()
4468 kmem_free(vsd->vs_value, vsd->vs_nkeys * sizeof (void *)); in vsd_free()
4469 kmem_free(vsd, sizeof (struct vsd_node)); in vsd_free()